- 基本爬虫知识python库urllib、urllib2、requests
- urllib、urllib2、request三者关系
- 从python的urllib开始
- urllib2学习
- requests学习
- ps:如何用浏览器抓包分析
- ps:爬虫分析小工具
- 页面提取
- 正则表达式
- xpath
- beautifulsoup
- 动态页面抓取selenium+phantomjs
- scrapy框架
- 基本用法
- 中间件-代理、登录
- 抓取环
- 分布式爬虫
- scrapy_redis,
- scrapy-cluster(加入kafka利器)
- scrapy的改造
- 自定义下载器
- 手机app数据抓取
- 利用代理抓接口(青花瓷)
- appium(selenium和appium原本都是自动化测试工具,用来做爬虫也是很好的)
利用浏览器抓包,是爬虫中的很实用的技能。在爬虫编程之前,我们要对抓取的目标页面有所了解,比如浏览器的这个请求这个页面中间都经历了什么,数据是怎么发送和返回的。
抓包的作用
我把抓包分析的作用简单列一下:
- 分析请求的headers等等,可以加载到你的爬虫中,伪装成浏览器。往往可以躲过简单的反扒策略
- 登录状态获取,如果我们在浏览器中登录,抓包拿到cookies,加到我们的爬虫中,往往就可以绕过登录这道坎,爬虫直接登堂入室,抓取更有价值的数据
- post请求,例如页面中通过post提交的表单。我们就可以抓包看到请求是每个参数的key和value,key是什么、value有没有编码等等
- 抓接口,抓包往往可以看到服务器返回到浏览器的的响应数据是什么,比如很多页面中的数据,其实是中间经过一次接口的,接口中往往是json数据。这样爬虫就可以直接抓接口,而不是原网页。json数据中比页面解析提取数据来的遍历
- 抓包分析,有时可以绕过有些网站的反扒限制,甚至网站的验证码(极少其概况下啊)
- ···
如何抓包
案例一
浏览器例如Chrome、Firfox都支持抓包,我们以Chrome浏览器为例吧,要有一个抓包的页面啊
http://www.tenliu.top/index.php/httpclient/?query=%E4%B8%AD%E5%9B%BD%202018%20%E8%8A%82%E5%81%87%E6%97%A5
浏览器中输入这个链接,页面空白处,右键“检查”,点击“network”,再次刷新页面,看到如下:
看似访问一个页面,其实中间进过怎么多请求。
其中左侧,每一个请求的Headers标签中内容如下四个部分:
- General
- Response Header
- Request Headers
- Query
其中重点在请求的headers,将里面的数据设置到你的爬虫,就可以伪装爬虫,通常设置Cookie、Host、User-Agent、Referer等。
案例二
post请求的抓包。
还是这个页面:
http://www.tenliu.top/index.php/httpclient/
我们看到有一个表单,可以post数据。在两个输入框填入内容点击提交吧,抓包看看,都是什么参数接受了你填写的内容。
案例三
抓包,获取接口。
这个页面
http://www.2345.com/corp.htm?innertab
想要获取这个页面上的各个行业和相应网址。抓取这个链接,提取页面元素。不论是用正则、xpath、beautifulsoup等等。有更好的办法吗?
抓包看看
通过抓包,我们得到接口:
http://www.2345.com/js/nvaurllist1202.js?v=8.13.1
抓取这个链接进行数据提取,不是比原页面简单些吗。
网友评论