Я ползаю широким ползком. Мне нужно обработать несколько страниц для каждого веб-сайта, чтобы установить значения для одного из примерно 20 правил классификации. Например, одно правило классификации - «Имеет номер телефона» (запускает регулярное выражение, чтобы увидеть, есть ли номер телефона в источнике страницы, и возвращает логическое значение). Правила реализованы в функции, называемой parse_page ().
Мне нужно, чтобы CrawlSpider запускал parse_page () на домашней странице каждого просканированного веб-сайта, а также на других общих страницах, таких как страница о странице, страница контактов, конфиденциальность page policy, et c.
Когда я запускаю паука, он начинается с some-site.com и захватывает страницы в соответствии с определениями правил в приведенном ниже коде.
Моя проблема заключается в том, что мне нужно parse_page () для запуска на домашней странице some-site.com (parse_page () в настоящее время работает только на some-site.com/contact-us, some-site.com/about -us, et c.). Тогда мой вопрос: Как мне указать Rule () для включения домашней страницы сайта, чтобы parse_page () вызывалась для домашней страницы, а также для других уже включенных страниц?
class SomeBotSpider(scrapy.spiders.CrawlSpider):
name = 'some_bot'
allowed_domains = ['some-site.com']
start_urls = ['https://some-site.com/']
rules = (
Rule(LinkExtractor(allow='/contact'), callback='parse_page', follow=True),
Rule(LinkExtractor(allow='disclaimer'), callback='parse_page', follow=True),
Rule(LinkExtractor(allow='disclosure'), callback='parse_page', follow=True),
Rule(LinkExtractor(allow='/about'), callback='parse_page', follow=True),
Rule(LinkExtractor(allow='privacy'), callback='parse_page', follow=True),
)