gpt4 book ai didi

python - 如何根据当前URL设置规则?

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

我正在使用 Scrapy,我希望能够对爬虫有更多的控制。为此,我想根据我正在处理的当前 URL 设置规则。

例如,如果我在 example.com/a 上,我想应用一个规则 LinkExtractor(restrict_xpaths='//div[@class="1"]')。如果我在 example.com/b 上,我想使用另一个具有不同链接提取器的规则。

我该如何实现?

最佳答案

我只是在单独的回调中对它们进行编码,而不是依赖于 CrawlSpider 规则。

def parse(self, response):
extractor = LinkExtractor(.. some default ..)

if 'example.com/a' in response.url:
extractor = LinkExtractor(restrict_xpaths='//div[@class="1"]')

for link in extractor.extract_links(response):
yield scrapy.Request(link.url, callback=self.whatever)

这比尝试在运行时更改规则要好,因为所有回调的规则应该是相同的。

在这种情况下,我只使用了链接提取器,但如果您想使用不同的规则,您可以做同样的事情,镜像相同的代码来处理规则 in the loop shown from CrawlSpider._requests_to_follow .

关于python - 如何根据当前URL设置规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30149065/

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