Scrapy Sitemap Spider не дает ожидаемых результатов - PullRequest
0 голосов
/ 19 июня 2019

У меня есть эта вложенная карта сайта.Документы Scrapy говорят, что он должен работать с вложенными картами сайта без каких-либо проблем.Мои целевые ссылки похожи на эту https://flatinfo.ru/arenda_kvartir.asp?id=867039 Так что в моем понимании мой sitemap_rules, содержащий ключевое слово из ссылки ('/arenda_kvartir/'), должен заставить паука вести себя по следующей логике: все ссылки найденыв sitemap.xml и содержащее ключевое слово из sitemap_rules следует добавить в функцию 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 {

                    }

1 Ответ

0 голосов
/ 19 июня 2019

Вам необходимо сопоставить два типа URL в ваших sitemap_rules: https://flatinfo.ru/arenda.asp?house=43182 и https://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, чтобы пропустить другие записи карты сайта).

Еще одна вещь: вам нужно подождать (почти 20 минут до первого обработанного URL для меня!), Потому что каждый файл XML занимает много времени для обработки.

...