Scrapyでサイトマップからスクレイピング

スパイダー — Scrapy 1.2.2 ドキュメント

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


class MySpider(SitemapSpider):
    name = 'wired_sitemap'

    # XMLサイトマップのURLのリスト。
    # robots.txtのURLを指定すると、SitemapディレクティブからXMLサイトマップのURLを取得する。

    sitemap_urls = ['https://wired.jp/sitemap.xml']

    # サイトマップインデックスからたどるサイトマップURLの正規表現のリスト。
    # このリストの正規表現にマッチするURLのサイトマップのみをたどる。
    # sitemap_followを指定しない場合は、すべてのサイトマップをたどる。

    sitemap_follow = ['2018-10']

    # サイトマップに含まれるURLを処理するコールバック関数を指定するルールのリスト。
    # ルールは (正規表現, 正規表現にマッチするURLを処理するコールバック関数) という2要素のタプルで指定する。
    # sitemap_rulesを指定しない場合はすべてのURLのコールバック関数はparseメソッドとなる。

    sitemap_rules = [(r'/2018/10/', 'parse')]

    def parse(self, response):
        i = {}
        i['title'] = response.css(
            'article.article-detail > header > h1::text').extract_first()
        return i