如果CONCURRENT_REQUESTS设置为默认值16,Scrapy将跳过请求。
我正在尝试使用草率的SiteMap蜘蛛传递一堆网址,并且随机跳过了43个网址中的2-3个。它不为他们调用解析函数。当我在start_request中打印请求的长度时,它给出43,但是parse函数仅被调用39-40次。
但是,奇怪的是,当我在settings.py文件中设置CONCURRENT_REQUESTS = 1时,它可以正常工作。以前它被设置为默认值16。
MySpider(SitemapSpider)类:
name = "sitemap_spider"
def __init__(self,config='', **kwargs):
self.sitemap_urls = self.config["sitemap_urls"]
self.other_urls = self.config["other_urls"]
super(MySpider,self).__init__()
options = webdriver.ChromeOptions()
options.add_argument('--headless')
self.driver = webdriver.Chrome(chrome_options=options)
def start_requests(self):
requests = list(super(MySpider, self).start_requests())
requests += [scrapy.Request(x, self.parse) for x in self.other_urls]
self.logger.info("requests: " + str(requests))
return requests
def parse(self, response):
# here I have a long parsing code#
如何增加并发请求会跳过一些URL。它没有足够的容量吗?