搜狗(http://weixin.sogou.com/)已经为我们做了一层微信文章的爬取,通过它我们可以获取一些微信文章的列表以及微信公众号的一些信息,但是它有很多反爬虫的措施,可以检测到你的IP异常,然后把你封掉。本文采用代理的方法处理反爬来抓取微信文章。
(1)目标站点分析
打开搜狗微信,输入要查找的内容,比如我们输入“风景”,就会出现微信文章的列表,向下翻动我们可以发现每页有10条内容,在最下方可以进行翻页。需要注意的是,未登陆时最多可以查看10页内容,登陆之后就可以查看100页的内容(也就是说,做爬虫的时候可以使用cookie爬取到100页内容):
从网页的url可以看出这是一个get请求,只保留主要的请求参数,把url简化为:
其中,“query”代表搜索的关键词,“type”代表搜索结果的类型,“type=1”表示搜索结果是微信公众号,“type=2”表示搜索结果是微信文章,“page”也就是当前页数。
现在网页是能正常访问的,但当我们点击翻页比较频繁的话,就会出现访问出错,输入验证码之后才能再次正常访问:
对网页请求进行分析,可以发现正常请求时状态码都是200,出现访问出错时状态码变成了302:
状态码302又代表什么呢?百度一下:
HTTP状态码302表示临时性重定向,该状态码表