python google 搜索结果爬取_对于 Python 抓取 Google 搜索结果的一些了解
原标题:对于 Python 抓取 Google 搜索结果的一些了解
1.问题
目前主流的搜索引擎,非 google 莫属,但其对于非法(流量异常、爬虫)请求的封锁也是异常严厉
本人前段时间有个脚本用到了谷歌搜索,当时直接使用的是一个 python 开源项目
但在使用过程中,单 ip 的情况下爬取速度可谓感人,稍不留神还会被封,所以对于获取谷歌搜索结果的爬虫有必要进行改进
本人对于Python学习创建了一个小小的学习圈子,为各位提供了一个平台,大家一起来讨论学习Python。欢迎各位到来
Python学习群:960410445一起讨论视频分享学习。Python是未来的发展方向,正在挑战我们的分析能力及对世界的认知方式,因此,我们与时俱进,迎接变化,并不断的成长,掌握Python核心技术,才是掌握真正的价值所在。
说一说爬取谷歌搜索结果的问题:
1.正常打开谷歌搜索,然后审查元素想获取目标内容的时候,会发现是一大串js。
2.访问过快就会出现流量异常
2.如何解决
对于第一个问题:
应该有看到审查元素出来的都是js,然后检索的url是这样的:
https://www.google.com.hk/search?q=hello&oq=hello&aqs=chrome..69i57j69i60l2j69i65j69i60j0.876j0j7&sourceid=chrome&ie=UTF-8&google_abuse=GOOGLE_ABUSE_EXEMPTION%3DID%3Daa946d8c657cf359:TM%3D1484917472:C%3Dr:IP%3D118.193.241.44-:S%3DAPGng0tGiKFaIr7YCaivUEmmEHOYJhG4jg%3B+path%3D/%3B+domain%3Dgoogle.com%3B+expires%3DFri,+20-Jan-2017+16:04:32+GMT
这里解决办法很粗暴,禁止掉js就好,让我们看看禁止js后是什么样的:
然后再看url: https://www.google.com.hk/search?q=hello&btnG=Search&safe=active&gbv=1
对于这个 url ,相信机智的你应该会明白些什么
这里可以写个简单的脚本,比如说获取,谷歌搜索第一页所有结果的 html ,简单写下:
到了这里,问题才刚开始,你可以做个实验,我假设你是使用代理进行谷歌搜索,如果你连续不断无间隔使用谷歌搜索某一关键字二三十下,不出意外你会被要求进行这样的验证:
这个问题可真是让人十分厌恶,我并没有很好的解决办法,能做的唯有尽量避免:
1.ip轮询 2.每次结果爬取增加休眠 3.随机user_agent是必备
第一点和第三点不必多说,对于第二点增加休眠时间则需要我们好好地进行检测。 假设在单ip随机ua情况下:
1.这种情况下不休眠的话请求个两三次就会直接被封(第二天会被解封)
2.个人觉得这不是个解决办法,因为对休眠时间把控不好的话就会造成封ip,如果不想被封,我测试的话需要休眠60s浮动,这没什么意义
3.而且这种情况下发现是直接封ip,对开发者太不友好
对于这种情况,受同事神来一句,发现一个暂时的解决办法,请看下图:
单一ip不停地访问统一谷歌域名自然很容易被察觉,谷歌全球190+的域名,难道都在实时的统计ip么,可能有,但绝对不会像单域名那样严格,来做个测试。
我将全球190+谷歌域名集中起来,像ua一样随机轮换,然后进行测试(单ip),结果还不错:
1.首先没有出现被封ip,只会提示流量异常
2.还是需要休眠,本人休眠5~15s没有被封过,可根据自身情况来,如果想稳妥点就5~30s吧
我将这些写成了一个项目,magic_google-python,若你是phper,可以看看我写的php版本php-google,具体代码可以看这里,对应的功能很简单:
3.总结
对google搜索结果的爬取,有以下建议:
1.ip轮询
2.ua随机
3.domain随机
4.休眠
源码已开源在GitHub,有兴趣可查看源码:https://github.com/howie6879/magic_google返回搜狐,查看更多
责任编辑:
python google 搜索结果爬取_对于 Python 抓取 Google 搜索结果的一些了解相关推荐
- python获取渲染之后的网页_使用Pyppeteer抓取渲染网页
Pyppeteer是Puppeteer的非官方Python支持,Puppeteer是一个无头JavaScript的基于Chrome/Chromium浏览器自动化库,可以用于对渲染网页的抓取. 比较了P ...
- python获取app信息的库_基于python3抓取pinpoint应用信息入库
这篇文章主要介绍了基于python3抓取pinpoint应用信息入库,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Pinpoint是用Java编写 ...
- 【Python爬虫教学】百度篇·手把手教你抓取百度搜索关键词后的页面源代码
[开门见山] 最近整理了下之前做过的项目,学的东西不少,乱七八糟.打算写点关于 Python 爬虫的东西,新人一枚,还望大佬们多多担待,别把我头给打歪了. 前面我先磨叽磨叽些基础的东西,对爬虫新人友好 ...
- Python之网络爬虫(验证码、代理IP、防反爬策略、封装一个抓取页面的函数)
文章目录 一.使用tesseract做OCR验证码识别 二.代理服务器设置 三.反爬与防反爬 四.封装一个抓取页面的函数 一.使用tesseract做OCR验证码识别 1.cookie, sessio ...
- python初学者爬虫教程(二)动态网页抓取
python爬虫教程(二)动态网页抓取 解析真实地址抓取 通过selenium 模拟浏览器抓取 selenium 安装与测试 selenium爬取一条评论 selenium获取文章的所有评论 sele ...
- python爬虫成长之路(一):抓取证券之星的股票数据
python爬虫成长之路(一):抓取证券之星的股票数据 获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇 ...
- php天猫列表数据抓取,如何翻页抓取网页数据——以采集天猫搜索列表为例
我们在抓取数据时,通常不会只抓取网页当前页面的数据,往往都会继续抓取翻页后的数据.本文就为大家介绍,集搜客GooSeeker网络爬虫如何在进行数据抓取时,自动抓取翻页后的数据. 在MS谋数台的爬虫路线 ...
- python获取藏头诗内容_用Python作诗,生活仍有诗和远方
具体步骤: 使用爬虫爬取全唐诗,总共抓取了71000首. #使用urllib3的内置函数构建爬虫的安全验证,来应对网站的反爬虫机制 http = urllib3.PoolManager( cert_r ...
- http下载异常_百度网站抓取异常的原因有哪些?有什么影响和解决方法?
大纲如下:1.抓取异常是什么?百度抓取异常又是什么?2.百度抓取异常的原因有哪些?3.网站抓取异常的原因有哪些?4.百度抓取异常对网站有什么影响?5.网站出现抓取异常的解决方法抓取异常是什么?百度抓取 ...
- 分享:Python使用cookielib和urllib2模拟登陆新浪微博并抓取数据
Python使用cookielib和urllib2模拟登陆新浪微博并抓取数据 http://my.oschina.net/leopardsaga/blog/94774
最新文章
- iOS后台下载功能(收集)
- try、catch和finally中都有return语句的情况
- 漫步数学分析二——欧几里得空间
- 吴恩达机器学习 7.神经网络参数的反向传播算法
- Flutter 基础系列篇
- 使用Volley+OkHttp+Gson加速Android网络开发
- 天线效应产生原因及解决办法
- 微信突然限制,你的小程序链接还好吗?
- html调查问卷页面,html+js 问卷调查页面的展示以及form提交
- react引入antd报错找不到antd/dist/antd.css Module not found: Error: Can‘t resolve ‘antd/dist/antd.css‘ in
- 作业报告封面模版(物联20级)
- 如何快速提高idm下载速度?idm下载速度只有几十kb
- webstorm自定义文件模板
- CMOS MIPI EOT 学习 基于Zynq高速串行CMOS接口的设计与实现
- 文本数据分析实战【数据清洗、统计分析、可视化展示、情感分析】
- PMP第二轮复习:整本书内容融会贯通
- 【排序算法】冒泡排序|选择排序|插入排序|希尔排序
- OpenGL超级宝典学习笔记——操作矩阵
- 《小王子》中的经典语录(中英文对照)
- 软件构建_认为独特的构建正确的软件而不是简单的软件