gpt4 book ai didi

python - 如何通过命令生成 url 让 scrapy 爬行

转载 作者:太空宇宙 更新时间:2023-11-04 03:37:25 26 4
gpt4 key购买 nike

这是我的代码:

def parse(self, response):  
selector = Selector(response)
sites = selector.xpath("//h3[@class='r']/a/@href")
for index, site in enumerate(sites):
url = result.group(1)
print url
yield Request(url = site.extract(),callback = self.parsedetail)

def parsedetail(self,response):
print response.url
...
obj = Store.objects.filter(id=store_obj.id,add__isnull=True)
if obj:
obj.update(add=add)

def 解析中scarpy 将从谷歌获取 urlurl 输出如下:

www.test.com
www.hahaha.com
www.apple.com
www.rest.com

但是当它屈服于 def parsedetail网址不符合顺序,可能会变成:

www.rest.com
www.test.com
www.hahaha.com
www.apple.com

有什么办法可以让 yield url 和 order 发送到 def parsedetail 吗?
因为我需要先抓取www.test.com。(top url在google搜索中提供的数据更正确)
如果里面没有数据。
我将转到下一个网址,直到更新空字段。(www.hahaha.com ,www.apple.com,www.rest.com )
请指导我谢谢!

最佳答案

默认情况下,Scrapy 请求的调度和发送顺序是没有定义的。但是,您可以使用 priority keyword argument 控制它:

priority (int) – the priority of this request (defaults to 0). The priority is used by the scheduler to define the order used to process requests. Requests with a higher priority value will execute earlier. Negative values are allowed in order to indicate relatively low-priority.


您还可以通过在 meta 字典中传递 callstack 使爬行同步,例如参见 this answer .

关于python - 如何通过命令生成 url 让 scrapy 爬行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28311380/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com