【Scrapy】Book Store Clawler

 

今回の章

セクション12:Building Web Crawler with Scrapy

 

今回の目的

Book Storeクローラー作成 → Class名をCrawlSpiderにする事でRuleを使えるようにする。

 

CrawlSpider

f:id:yukking3:20201129184415p:plain

 

Ruleは以下の通り

rules = (Rule(LinkExtractor(), callback='parse_page', follow=True),)

 

Rule(LinkExtractor()はサイト上のURLを抜き取ってくれる関数である。もし何も設定しないとスパイダーは全てのリンクを探そうとします。そのため、Rulesで設定をします。

 

allow=catalogue/

URLにカタログが入っているリンクのみ有効になる。

 

callback=parse_page

すべてのリンク取得後にparse_pageメソッド実行をしている。

 

follow=True

抽出された各レスポンスからリンクをたどるかどうかを指定する。

 

その他:

'deny_list'は設定すると拒否する項目を設定できる。ただし拒否があまりにも多い場合は使いにくい。

'restrict_list'はスパイダーはその対象のHTML要素のみリンクを探してくれます。

'unique=True'は重複したURLを検出しない設定です。

 

<主なパラメータ>

・allow:

・deny:

・allow_domains:

・deny_domains:

・restrict_xpaths:

 

<ルールはこのどれか>

・callback:

・follow:

・process_links:

・process_request:

 

follow=TrueとFalse

Flaseはページ内のリンクのみ取得する。

f:id:yukking3:20201129222121p:plain