tenliu的爬虫-抓包分析

  • 基本爬虫知识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”,再次刷新页面,看到如下:

tenliu的爬虫-抓包分析_第1张图片
爬虫抓包分析

看似访问一个页面,其实中间进过怎么多请求。
其中左侧,每一个请求的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等等。有更好的办法吗?
抓包看看

tenliu的爬虫-抓包分析_第2张图片
爬虫抓包分析2

通过抓包,我们得到接口:
http://www.2345.com/js/nvaurllist1202.js?v=8.13.1
抓取这个链接进行数据提取,不是比原页面简单些吗。

更多内容请访问我的个人博客www.tenliu.top

你可能感兴趣的:(tenliu的爬虫-抓包分析)