Section 12 Building Web Crawler with Scrapy
プロジェクト環境を整える。
コードは以下の通り
$ scrapy startproject books_crawler $ cd books_crawler $ scrapy genspider books books.toscrape.com/
books.pyのURLを変更する。wwwは取り除くことが注意ポイントである。 wwwがあるとエラーがでることがある。 実際にwwwを入れてやってみるとtwisted errorがでる。
インポートする
from scrapy.spiders import CrawlSpider, Rule from scrapy.linkextractors import LinkExtractor
ルールを追加する。
rules = (Rule(LinkExtractor(), callback='parse_page', follow=True),)
follow=Trueとする事でLinkExtractorがすべてのURLを取得して、Next PgaeのURLも取得する。もしすでに取得した情報がある場合は2回目は取得しない。
follow=Trueとした場合は、最初のページのみのURLを収拾する。
callback='parse_pageでは、取得したページ内のすべてのURLを取得します。
Ruleにdeny_domainを追加すると、そのドメインのページだけ取得はしなくなる。
逆にURLにMusicが含まれるページのみをスクレイピングする事もできる。