问题:
今天在用scrapy爬取豆瓣时,出现了403的错误,如下所示:
出现这个问题的原因其实是你所爬的网站使用了反爬机制,即会检查用户代理(User Agent)信息 ,此时需要在爬虫文件中设置headers。
解决方法:
如下,在你的爬虫文件中加入以下代码:
def start_requests(self):
yield Request("http://www.douban.com/",
headers={'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"})
如果采取了上述方法仍未解决的话,则可以尝试在你的setting.py文件中增加USER_AGENT配置:在setting.py中找到USER_AGENT的位置,将其前面的#去掉,然后将它的值改为你的User Agent信息,最终的效果如下:
USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'
若经过以上操作还没有解决问题,仍出现403的错误,可能是你的ip被封了,这时候就要用到代理ip的方法的,具体如何操作就不在这里详述了,google即可。希望能给初学scrapy的小伙伴带来帮助。