我用Scrapy创建了一个从Yelp抓取数据的爬虫。所有请求都通过Crawlera代理。Spider获取要抓取的URL,发送请求,然后抓取数据。直到有一天,我开始收到502无响应。执行以下代码行后,将显示502无响应:
r = self.req_session.get(url, proxies=self.proxies, verify='../secret/crawlera-ca.crt').text
回溯:
2020-11-04 14:27:55 [urllib3.connectionpool] DEBUG: https://www.yelp.com:443 "GET /biz/a-dog-in-motion-arcadia HTTP/1.1" 502 None
因此,似乎爬虫无法到达URL,因为连接已关闭。
我已经检查了Scrapy和Crawlera文档中的502含义,它指的是连接被拒绝、关闭、域不可用以及类似的事情。我已经调试了与问题发生位置相关的代码,所有内容都是最新的。
如果有人对此有想法或知识,我会很乐意听到的,因为我被卡住了。这到底是什么问题呢?
注意:当我在浏览器中打开Yelp URL时,它们工作正常。
发布于 2020-11-08 04:33:25
从你的请求头部可以看出,你是一个“刮板”,而不是一个人类用户。
您应该随请求发送不同的标头,以便抓取的网站认为您正在使用常规浏览器进行浏览。
有关更多信息,请参阅the scrapy documentation。
发布于 2020-11-05 10:55:32
某些页面在某些国家/地区不可用,因此建议使用代理。我尝试输入url,但连接成功。
2020-11-05 02:50:40 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6024
2020-11-05 02:50:40 [scrapy.core.engine] INFO: Spider opened
2020-11-05 02:50:43 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://www.yelp.com/biz/a-dog-in-motion-arcadia> (referer: None)```https://stackoverflow.com/questions/64682577
复制相似问题