5分钟带你深入了解Python爬虫,你会发现爬虫其实没有那么难( 二 )

  • 如果“请求”之前有页面,依据上一步的网址进行分析推导第1页 。以此类推,抓取抓Ajax地址的数据 。
  • 对返回的json格式数据(str)进行正则匹配 。json格式数据中,需从'\uxxxx'形式的unicode_escape编码转换成u'\uxxxx'的unicode编码 。
 
自动化测试工具Selenium
Selenium是一款自动化测试工具 。它能实现操纵浏览器,包括字符填充、鼠标点击、获取元素、页面切换等一系列操作 。总之,凡是浏览器能做的事,Selenium都能够做到 。
这里列出在给定城市列表后,使用selenium来动态抓取去哪儿网的票价信息的代码 。
 
验证码识别
对于网站有验证码的情况,我们有三种办法:
  • 使用代理,更新IP 。
  • 使用cookie登陆 。
  • 验证码识别 。
使用代理和使用cookie登陆之前已经讲过,下面讲一下验证码识别 。
可以利用开源的Tesseract-OCR系统进行验证码图片的下载及识别,将识别的字符传到爬虫系统进行模拟登陆 。当然也可以将验证码图片上传到打码平台上进行识别 。如果不成功,可以再次更新验证码识别,直到成功为止 。
爬取有两个需要注意的问题:
  • 如何监控一系列网站的更新情况,也就是说,如何进行增量式爬取?
  • 对于海量数据,如何实现分布式爬取?
分析
抓取之后就是对抓取的内容进行分析,你需要什么内容,就从中提炼出相关的内容来 。
常见的分析工具有正则表达式,BeautifulSoup,lxml等等 。
 
存储
分析出我们需要的内容之后,接下来就是存储了 。
【5分钟带你深入了解Python爬虫,你会发现爬虫其实没有那么难】我们可以选择存入文本文件,也可以选择存入MySQL或MongoDB数据库等 。
存储有两个需要注意的问题:
  • 如何进行网页去重?
  • 内容以什么形式存储?
 
Scrapy
Scrapy是一个基于Twisted的开源的Python爬虫框架,在工业中应用非常广泛 。
相关内容可以参考基于Scrapy网络爬虫的搭建,同时给出这篇文章介绍的微信搜索爬取的项目代码,给大家作为学习参考 。
 
Robots协议
好的网络爬虫,首先需要遵守Robots协议 。Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取 。
在网站根目录下放一个robots.txt文本文件(如 https://www.taobao.com/robots.txt ),里面可以指定不同的网络爬虫能访问的页面和禁止访问的页面,指定的页面由正则表达式表示 。网络爬虫在采集这个网站之前,首先获取到这个robots.txt文本文件,然后解析到其中的规则,然后根据规则来采集网站的数据 。
1、Robots协议规则
5分钟带你深入了解Python爬虫,你会发现爬虫其实没有那么难

文章插图
 
注意: 一个英文要大写,冒号是英文状态下,冒号后面有一个空格,"/"代表整个网站
2. Robots协议举例
5分钟带你深入了解Python爬虫,你会发现爬虫其实没有那么难

文章插图
 
总结:
以上就是我要说的写的内容,希望以上的内容可以帮助到正在默默艰辛,遇到瓶疾且不知道怎么办的Python程序员们,奶盖能帮你的只有这么多了,希望大家在往后的工作中,一切顺利 。
觉得小编文章写的不错的,请大家关注奶盖哦!




推荐阅读