1 http://www.gree.com.cn/pczwb/xwzx/index.shtml
1.1 特点分析
使用的是ajax请求来进行的局部刷新,使用json来进行处理。使用fiddler构造请求一直不成功,服务器有反爬虫机制,增加UA也无法成功,防爬虫做的有些严格。
1.2 解决方案
打开fiddler,正常浏览页面,点击下一页按钮,在fiddler中查看此次请求,然后点开raw选项卡,看到完整的post请求,全选拷贝,在compose中构造此请求,发现请求成功。
1.3 代码位置
http://demo.pyspider.org/debug/gree_tk
1.4 值得注意的思路
这个算是处理比较久的,在实际处理过程中,构造的请求一直不能成功,然后想到直接使用成功的请求来伪造,于是发现了Raw这个选项卡。
之后一个一个参数进行测试,查看那些参数对这个请求的正常与否有直接关系,得到下图
其中的Accept、Origin、User-Agent、Referer、Accept-Encoding是必须的参数。可以看到未必只有UA会对爬取产生影响,其他参数有些时候价值也很大。
最后就是关于fetch_type='js'这个参数,对于需要运行js之后才形成的页面很有效,对于请求json这种则千万不能加。有这种想法的原因是对这个不理解,官方文档中也没有详细的解释。