gengogo5 / general_crawler

汎用クローラのプロトタイプ
0 stars 0 forks source link

サイトマップからクロールするプロトタイプ #7

Open gengogo5 opened 4 years ago

gengogo5 commented 4 years ago

概要

sitemap.xmlを元に、サイトをクロールする

仕様候補

可変要素

備考

gengogo5 commented 4 years ago

引数に使うJSONパターン(暫定)


{
    "sitemap_url": "https://example.com/sitemap.xml",
    "except_article_patterns": [
        "adult",
        "foobar"
    ],
    "sitemap_patterns": [
        "sitemap-pt-post-2020-.*"
    ]
}
gengogo5 commented 4 years ago

gzip形式は現状でも動きそうな気がする https://docs.scrapy.org/en/latest/_modules/scrapy/spiders/sitemap.html

gengogo5 commented 4 years ago

重複除外の参考記事 https://anopara.net/2017/02/26/%E3%81%96%E3%81%A3%E3%81%8F%E3%82%8A%E7%90%86%E8%A7%A3%E3%81%99%E3%82%8Bscrapy%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9/

gengogo5 commented 4 years ago

TODO: parseの明示は不要な可能性あり

gengogo5 commented 4 years ago

URLを置換して除外判定するにはSchedulerを継承して、from_crawlerをオーバライドして独自dupefilterにspiderを差し込む必要がありそう。

https://github.com/scrapy/scrapy/issues/2940

スパイダー個別の実装をする必要がないので比較的きれいな解決策に見える