我想抓一个关于网站的信息。我像这样使用代理IP:
def process_request(self, request, spider):
item = random.choice(ippool)
request.meta['proxy'] = "http://"+item['ip']
request.meta['dont_redirect'] = True
但它会引起一些错误:
DEBUG:抓取(302),抓取(403),
信息:忽略响应,500内部服务器错误
等等。我怎样才能解决这些问题。
另一方面,由于这是代理IP,因此它很慢。如果我想在此添加多进程。我该怎么办?
感谢。
答案 0 :(得分:0)
要处理特定的HTTP状态代码,您可以定义handle_httpstatus_list
class MySpider(scrapy.Spider):
name = "spider_name"
handle_httpstatus_list = [500, and more here]
现在它不会显示
INFO: Ignoring response, 500 Internal Server Error
相反,它会将响应移交给相关的回调函数。