Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 刮痧请求被卡住了_Javascript_Parsing_Scrapy - Fatal编程技术网

Javascript 刮痧请求被卡住了

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:

我试图抓取几个网址,每个网址有几个网页,每个网页有几个项目。页面更改通过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:
         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上,并不断更改该url的页面

任何帮助都将不胜感激。
谢谢

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不匹配你有过这样的经历吗?