Python Scrapy-已爬网URL的顺序
我对scrapy和python有意见。 我有几个链接。我使用循环在一个脚本中从它们中获取数据。但爬网数据的顺序是随机的,或者至少与链接不匹配 所以我无法将每个子页面的url和输出的数据进行匹配 比如:爬网url、数据1、数据2、数据3。Python Scrapy-已爬网URL的顺序,python,scrapy,Python,Scrapy,我对scrapy和python有意见。 我有几个链接。我使用循环在一个脚本中从它们中获取数据。但爬网数据的顺序是随机的,或者至少与链接不匹配 所以我无法将每个子页面的url和输出的数据进行匹配 比如:爬网url、数据1、数据2、数据3。 data1,data2,data3=>这没关系,因为它来自一个循环,但是我如何才能将当前url添加到循环中,或者如何设置链接列表的顺序?就像列表中的第一个被爬网为第一个一样,第二个被爬网为第二个…time.sleep()-这是一个解决方案吗?好的,解决方案似乎在
data1,data2,data3=>这没关系,因为它来自一个循环,但是我如何才能将当前url添加到循环中,或者如何设置链接列表的顺序?就像列表中的第一个被爬网为第一个一样,第二个被爬网为第二个…time.sleep()-这是一个解决方案吗?好的,解决方案似乎在scrapy的settings.py文件中
# -*- coding: utf-8 -*-
import scrapy
class sth(scrapy.Spider):
name = 'sth'
allowed_domain = ['example.com']
start_urls = [
'https://www.example.com/url1/',
'https://www.example.com/url2/',
'https://www.example.com/url3/',
]
def parse(self, response):
for content in response.css('div#content'):
yield {
'data1': content.css('li#name2::text').extract(),
'data2': content.css('li#name1::text').extract(),
}
下载延迟=3
在请求之间
它应该是未注释的。默认情况下,它是注释的。可能重复的。您能否向我们提供部分代码,以便我们了解问题所在?这不是正确的解决方案,它似乎只解决了您的“问题”。Scrapy是异步的,这意味着您不能指望响应的传入顺序,这取决于网络速度(IO)。如果必须按顺序下载,则需要自己维护一个堆栈,只有在收到上一个请求的响应后才能从中弹出。但是我很确定您不需要它,因为您可以简单地将URL附加到iteself:
产生{'URL':response.URL,}
。