Section 14 Grabbing URLs (Book Store)
概要
titleとurlを取得→次のページに行く→各ページのデータ収集
各タイトルのURLを取得する。
最初にstartURLを設定する
start_urls = ['http://books.toscrape.com']
titleに付いているURLを確認する。
<a href="catalogue/a-light-in-the-attic_1000/index.html" title="A Light in the Attic">A Light in the ...</a>
上記の通りなっているので、次の順で各本のURLを取得する。
①booksに全ての('//h3/a/@href')のURLを入れる。
②for book in booksでabsolute_urlを生成する。
③各本のURLが出来上がる。
NextボタンのURLを取得する。
検証で確認→shellで試す→urlをextractする→absoluteURLを作成する。
同じように検証で確認する。 shellで確認する。 absoluteURLを作る。
本の詳細データを取得する。
各タイトルのURLを取得する→そこから更に詳細データを取得する
最終的なコードは以下の通り
cssセレクタでタイトルを取得する。
xpathとcss selectorで取得できるか確認する。
title = response.css('h1::text').extract_first()
価格の取得をやってみる。
検証で確認する。 shellで確認する。
イメージの取得をやってみる。
イメージの取得は少々とトリッキーである。
基本的に要らない部分はリプレイスで消す。
検証で確認する。
shellで確認する。
実際に取得すると
'../../media/cache/fe/72/fe72f0532301ec28892ae79a629a293c.jpg'
つまり、URLにするにはこの ( '../..' )部分をリプレイスしなければならない。 実際にやってみた
星の取得をやってみる。
検証する shellで確認する。 コードを作成する。
Descriptionの取得をやる。
検証るす。 shellで確認する。
テーブルにあるproduct_infoを取得する。
検証する
テキスト検索でデータ収集をする!
shellで確認する
response.xpath('//th[text()="' + value + '"]/following-sibling::td/text()').extract_first()
コードにする。 テーブルの中に色々あるのでデータポイントを作る。