拉勾的302搞的我不心力憔悴,几乎失去了动力继续再研究拉勾爬虫…实际上,这种无力感很大程度上来源于知识结构的匮乏(尤其是基础方面)和毫无进展带来的挫败感。
于是乎去读基础教程《learning scrapy》,准备从0开始跟着教材敲一遍代码。学习中,因测试需要去爬了一下51job,没想到,51job竟然没什么反爬机制,只要设置一个user-agent就可以愉快的爬爬爬,甚至都不需要设置延迟,也不会担心封ip…
在爬取的过程中遇到了一些小问题,解决他们的过程中,确实是帮助我理解了一些很基础的东西,了解了他们的作用。现在记录并分享一下。
1.返回400状态码:
什么是400状态码呢?:400 bad request 错误的请求
解决方法:修改爬虫中request’参数
2.scrapy 爬虫时报错:
<twisted.python.failure.Failure twisted.internet.error.ConnectionLost: Connection to the other side was lost in a non-clean fashion: Connection lost.>
这是因为没有加header
解决方法:增加浏览器头部
3.迭代爬取时,报错 Filtered offsite request
因为 Request中请求的 URL 和 allowed_domains 中定义的域名冲突,所以将Request中请求的URL过滤掉了,无法请求。
解决方法:正确修改allowed_domains为域名(不加www.或者http),或者在request中添加参数dont_filter = True
4.urlparse模块
python2中的urlpython模块在python3中已经改名为urllib.parse,所以import的时候要注意咯。