我用Scrappy和python3.6.8构建了sprider,并在运行sprider时记录了未完成的url:
self.urls.append(url)
item=myItem()
item["mylink"]=url
yield scrapy.Request(
url="myurl",
method='GET',
headers=self.headers,
callback=self.parse_detail,
errback=self.make_new_request,
meta={"item":item})
我尝试在蜘蛛类破坏之前重试未完成URL:
def __del__(self):
print("\033[31myielded:",len(self.yielded),"scrapying:",len(self.urls),"\033[0m")
if len(self.urls)>0:
print(self.urls)
print("\033[31mretry uncompleted\033[0m")
self.RetryUncompletedUrls()
但蜘蛛只是打印和存在!我怎么能在蜘蛛完成之前重试操作?谢谢!
1条答案
按热度按时间cx6n0qe31#
重试中间件默认启用,并设置为重试URL两次。
您可以在www.example.com文件中对此进行调整settings.py。