gpt4 book ai didi

python - 抓取不区分大小写的不重复的 URL

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

我正在使用不区分大小写的 scrapy 抓取一组 URL,例如 http://www.example.com/ABC/1 是与 http 相同的页面://www.example.com/abc/1。在我的 CrawlSpider 中,我的运行看起来像这样:

Rule(LinkExtractor(allow=('(?i)http://www.example.com/abc/\d+', ))

它同时选择了两个变体,但我最终对页面进行了两次爬网,因为重复过滤器将它们视为不同的页面。

有没有一种简单的方法可以强制 scrapy 只访问一个变体或另一个变体(但不能同时访问两者),而无需子类化 RFPDupeFilter 并更改 DUPEFILTER_CLASS 设置?或者这是最好的解决方案?

最佳答案

Scrapy 的规则类有一个属性process_links,可以用来将所有链接规范化为小写。要点:

def links_as_lower(links):
for link in links:
link.url = link.url.lower()
yield link

Rule(LinkExtractor(allow=('(?i)http://www.example/abc/\d+', ), process_links=links_as_lower)

关于 scrapy 规则的完整文档是 here

关于python - 抓取不区分大小写的不重复的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44054269/

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