scrapy 站点地图蜘蛛不提供预期的结果

scrapy sitemap spider does not provide expected results

我有这个嵌套站点地图。 Scrapy 文档说它应该可以毫无问题地使用嵌套站点地图。 我的目标 link 是这样的 https://flatinfo.ru/arenda_kvartir.asp?id=867039 因此,根据我的理解,我的 sitemap_rules 包含 link ('/arenda_kvartir/') 中的关键字应该使蜘蛛按以下逻辑运行: 在 sitemap.xml 中找到并包含来自 sitemap_rules 的关键字的所有 link 应该被抓取到 parsed 函数中。但根据日志,这永远不会发生。蜘蛛只是遍历站点地图中的所有主要类别并退出。 我哪里错了? 下面是我的代码。

# -*- coding: utf-8 -*-
import scrapy
from scrapy.spiders import SitemapSpider

class CodeSpider(SitemapSpider):
    name = 'code_s'
    sitemap_urls = ['https://flatinfo.ru/sitemap.xml']
    sitemap_rules = [
        ('/arenda_kvartir/', 'parsed'),
        ('/sitemap_prodaja_kvartir/', 'parsed'),
    ] 


    def parsed(self, response):
        yield {

                    }

您需要在 sitemap_rules 中匹配两种类型的 URL:https://flatinfo.ru/arenda.asp?house=43182https://flatinfo.ru/prodaja_kvartir.asp?id=17488515正确的 sitemap_rules 将是:

sitemap_rules = [
    ('arenda.asp', 'parsed'),
    ('prodaja_kvartir.asp', 'parsed'),
]
sitemap_follow = ['sitemap_prodaja_kvartir', 'sitemap_arenda']

(我添加了 sitemap_follow 以跳过其他站点地图条目)。

还有一件事:你需要等待(对我来说第一次处理 URL 将近 20 分钟!)因为每个 XML 文件都需要很多时间来处理。