Javascript 刮痧请求被卡住了
我试图抓取几个网址,每个网址有几个网页,每个网页有几个项目。页面更改通过FormRequest执行。 我的蜘蛛看起来像这样:Javascript 刮痧请求被卡住了,javascript,parsing,scrapy,Javascript,Parsing,Scrapy,我试图抓取几个网址,每个网址有几个网页,每个网页有几个项目。页面更改通过FormRequest执行。 我的蜘蛛看起来像这样: def parse_url(self, response): for url in url_list: yield scrapy.Request(url,callback=self.parse_page) def parse_page(self, response): for page in page_list:
def parse_url(self, response):
for url in url_list:
yield scrapy.Request(url,callback=self.parse_page)
def parse_page(self, response):
for page in page_list:
yield scrapy.FormRequest(url,formdata=data, callback=self.parse_item)
def parse_item(self, response):
for item in item_list:
yield item
我希望Scrapy能按以下顺序爬行:
- url1-第1页:获取所有项目
- url1-第2页:获取所有项目
- url1-第3页:获取所有项目
- url2-第1页:获取所有项目
- url2-第2页:获取所有项目
谢谢Scrapy异步处理请求,因此它不太可能按照您期望的顺序处理请求。如果你把它限制在只刮一页,它会刮除你所期望的一切吗?此外,如果您的某个例程中有错误,我们很难从伪代码中发现,我们需要URL和XPath等。为了更容易地调试,请在setting.py或spider类中设置
CONCURRENT_REQUESTS=1
作为类参数custom_settings={CONCURRENT_REQUESTS':1}
如果我只限制一个url,一切正常:所有页面都被访问,所有项目都被废弃。但是当我添加多个url时,它只使用最后一个url并访问同一url中的不同页面。CONCURRENT_REQUESTS=1可以改善这种情况。URL是2乘2的,只有第二个URL的项目才会被废弃。差不多了…事实上,我有一个奇怪的效果:-response.url是正确的一个-response.body与url不匹配你有过这样的经历吗?