专栏首页江湖安得便相忘小笔记:python搜索引擎下拉框截图

小笔记:python搜索引擎下拉框截图

作为一个程序员,被女友提需求也也是常有的事情,最近就来了一个需求,需要截取指定搜索引擎的关键词下拉框截图,就是这种的,只要度娘搜索引擎的。

“小意思,一会就完事”,心中考虑着,先简单实现。

道具

python3 + selenium

chromedriver

google-chrome

说写就写

百度的搜索使用get参数获取关键词,主要是wd起作用,由于仅使用第一页,所以不需要考虑翻页的参数

https://www.baidu.com/s?wd=北京时间

不废话,老规矩,获取到webdriver直接get url

from selenium import webdriver
option = webdriver.ChromeOptions()
option.add_argument('--headless')
option.add_argument('--disable-gpu')
option.add_argument('user-agent="%s"' % user_agent)
driver = webdriver.Chrome(options=option)
driver.get(url)

度娘的下拉框比较友好,直接靠点击事件就可以唤起,所以通过检查元素找到输入框的id

直接右键copy ---> copy xpath,熟悉或者喜欢css selector的同学也可以点击copy ---> copy selector

driver.find_element_by_xpath('//*[@id="kw"]').click();

然后截图

driver.set_window_size(w, h);  # 设置窗口宽高比下拉框稍大一圈即可
driver.save_screenshot(filename);

成果

哎?数据好像和直接访问咋有点不一样呢?先交上去问问咋回事。。。

“不对!你这下拉框截的图不对!这是开启预测的结果,不要这样的,要关闭预测的”

原来还有这个说道,于是在犀利的指导下,知道了开启预测和关闭预测的位置。

初步考虑同样使用模拟点击,通过开发者工具模拟点击测试,可以修改。

经过在程序内使用函数 find_element_by_css_selector 修改尝试并没有起到任何作用,于是又尝试了 execute_script ,延迟执行等等同思路方法,都没有奏效。

新尝试

元素模拟点击不行,可以看下网络请求是否有不同,每一次关键词检索后,再次点击输入框会发起一次请求

返回数据就是下拉框内容。

于是我比较了开启和关闭预测时的两次请求有什么不同。两次的GET参数除了常规的签名和时间戳变化,没有异同。

于是我比较了cookie,结果很喜人,的确有一个cookie值发生了变化,

ORIGIN = 2的情况就是关闭预测,设置cookie后再次运行。

完美~ 交差

本文分享自微信公众号 - 可回收BUG(way-of-full-stack),作者:江湖安得便相忘

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 美多商城项目(七)

    If you can change your mind, you can change your life.

    小闫同学啊
  • 【实战收藏篇】用相亲视角看B2B公司SEM关键词策略

    如果一家B2B企业是通过网站获得客户,那就绝不能忽视搜索引擎。搜索引擎本质上是信息中介,相当于“媒婆”。搞清楚“媒婆”是怎么保媒拉纤的,也就搞清楚该怎么用搜索引...

    iCDO互联网数据官
  • 如果Google重返中国,能够击倒百度吗?

    最近正值《变形金刚4》热映,笔者用百度搜索“变形金刚”,发现结果页瞬间变成一个 “擎天柱”,并最终演化成一句文字:“变形金刚三十周年,百度搜索为你而变”。显然...

    罗超频道
  • Elasticsearch 在网页摘要计算中的优化实践

    导语 | 网页摘要计算,术语是 snippet computing/highlight computing。用户在输入框输入的关键词命中相关网页(ES 中的文档...

    腾讯云大数据
  • Elasticsearch 在网页摘要计算中的优化实践

    导语 | 网页摘要计算,术语是 snippet computing/highlight computing。用户在输入框输入的关键词命中相关网页(ES 中的文...

    腾讯QQ大数据
  • Python课后改变了我的学习方式

    2019年6月份我写的 的关于python 选修课的博文 忘了发到哪个平台了,从新在 CSDN 传一下

    韩旭051
  • 11个Python爱好者最爱访问的站点

    学习一门编程语言,除了语法,最重要的是学习解决问题。很多时候单凭自己的能力确实无法做到完美解决,所以无论是搜索引擎、社区、文档还是博客,都是我们解决问题的利器。...

    IT派
  • Python爱好者常用的11个站点 哪几个是你必看的?

    学习一门编程语言,除了语法,最重要的是学习解决问题。很多时候单凭自己的能力确实无法做到完美解决,所以无论是搜索引擎、社区、文档还是博客,都是我们解决问题的利器。

    IT派
  • 基于SpringBoot+Mybatis plus+React.js实现条件选择切换搜索功能

    在写React前端逻辑时,经常遇到可以切换不同条件的列表查询功能,例如下边截图这样的,其实,这块代码基本都一个逻辑,可以一次性将实现过程记录下来,待以后再遇到时...

    朱季谦
  • Python爱好者必看11个常用站点

    学习一门编程语言,除了语法,最重要的是学习解决问题。很多时候单凭自己的能力确实无法做到完美解决,所以无论是搜索引擎、社区、文档还是博客,都是我们解决问题的利器。...

    小小科
  • SPA网站SEO优化PhantomJs

    随着web2.0的兴起,ajax的时代已经成为了事实,更如今Knockout,backbone, angular,ember前端MDV(model driver...

    javascript.shop
  • 以图搜图技术栈

    先看个案例: ? 这是什么动画 https://whatanime.ga/ 一个用于通过动画截图找出处的搜索引擎。可以找到跟动画截图相似的动画片截图,并找到动画...

    mixlab
  • 我的爬虫技术经历

    1. 前言 爬虫,这个词很多朋友第一次听到,第一感觉应该是各种小虫子,应该不会和某种计算机技术联系在一起。我第一次听到这个词,就是这样一个感觉。但是当这个这个词...

    前端教程
  • 【大数据分析必备】超全国内常用API接口汇总

    下面列举了100多个国内常用API接口,并按照 笔记、出行、词典、电商、地图、电影、即时通讯、开发者网站、快递查询、旅游、社交、视频、天气、团队协作、图片与图像...

    IT派
  • 【数据】常用API接口汇总

    下面列举了100多个国内常用API接口,并按照 笔记、出行、词典、电商、地图、电影、即时通讯、开发者网站、快递查询、旅游、社交、视频、天气、团队协作、图片与图像...

    陆勤_数据人网
  • 收藏系列:10个让电脑「 效率高到爆炸 」的软件

    uTools是一个非常强大的生产力工具箱软件,它自由集成了丰富的插件,可以快速匹配场景功能,用完即走。快捷键Alt+Space可以快速呼出搜索框,可以快速打开这...

    浩说编程
  • python爬虫入门(五)Selenium模拟用户操作

    爬虫(Spider),反爬虫(Anti-Spider),反反爬虫(Anti-Anti-Spider) 之间恢宏壮阔的斗争... 小莫想要某站上所有的电影,写了...

    zhang_derek
  • PubMed专题:(二)搜索结果的阅读、筛选、下载、保存与利用

    对文献检索来说,搜索是极为关键的第一步,直接决定了搜索结果里面有没有你想要的。因此,对PubMed搜索还不是很熟悉的读者,可以结合第一期推送教程,加以操作实练,...

    百味科研芝士
  • PubMed专题:(二)搜索结果的阅读、筛选、下载、保存与利用

    对文献检索来说,搜索是极为关键的第一步,直接决定了搜索结果里面有没有你想要的。因此,对PubMed搜索还不是很熟悉的读者,可以结合第一期推送教程,加以操作实练,...

    微点

扫码关注云+社区

领取腾讯云代金券