由于课程大作业的缘故初学爬虫,在爬取贝壳网二手房数据时,由于爬虫耗时以I/O操作为主,因此使用多线程爬虫提速。但是被识别为机器人并拦截,无法完成爬取。
笔者使用了随机sleep,fake-useragent库,代理等方法,仍然被拦截。
robots.txt是一个存放在网站根目录下的ASCII编码的文本文件。爬虫在爬网站之前,建议首先访问并获取这个robots.txt文件的内容,这个文件里面的内容会告诉爬虫哪些数据是可以爬取的,哪些数据是不可以爬取的。要查看一个网站的robots.txt,只需要访问“网站域名/robots.txt”。
以贝壳网为例:
User-agent标识允许的用户代理,Disallow标识允许爬取的页面,Allow标识允许爬取的页面。这里只需要把User-agent改成允许的就行了。建议遵守协议,不要爬取不允许爬取的内容。
附上笔者觉得很好的教材:
书名:Python爬虫开发:从入门到实战(微课版)
作者:谢乾坤
出版社:人民邮电出版社
出版时间:2018-09
ISBN:9787115490995