最近写了一些爬虫,中间前前后后遇到不少坑,部分总结如下:
1. 请求数据头的设置:User-Agent,如不进行主动设置,服务器可能就拒绝服务。
2. Http字段Referer:该字段表明本次请求的上一次请求页面,有些链接过来的请求需要填充该字段。
3. Cookie:每次请求的服务器状态保存。
4. Host:服务器跳转过程中会修改该字段,我们需要该字段来拼接完整的URL。
5. GZIP压缩:服务器如返回的为Gzip(“content-encoding=gzip”)压缩页面,需要手动解压。
6. 301、302重定向:前者表示永久性转移,后者表示暂时性转移。
7. https传输:需要设置认证信息及安全信息。
JS绘制页面:该部分数据提取正在调研,python中有phantomjs,未完整尝试,正在调研;经网上找到资料,可采用修改Webkit内核来实现完整解析工作,可见腾讯文章:分布式爬虫之WebKit(https://www.qcloud.com/community/article/139)。