Google検索の結果をスクレイピングする
フォローするGoogleは最も多く使われている検索エンジンです。このチュートリアルでは、Google検索のデータをスクレイピングする方法を説明します。
チュートリアルで次のURLを使用します。
1.対象のWebページを開く
- https://www.google.com/を入力して「抽出開始」をクリックし、ページを開きます。
2. キーワードを入力し検索する
- 入力ボックスをクリックし、パネルの「テキストを入力する」をクリックします。
- キーワードを入力し、「はい」をクリックします。
- ページの検索ボタンをクリックし、「操作ヒント」の「選択したボタンをクリックする」をクリックします。
ヒント!
|
3.複数ページからデータを取得する(1ページ目の結果だけ取得したい場合、スキップ)
- a.ページ読み込み後、ページ送りボタン「次へ」をクリックします。
- b.「操作ヒント」の下部にあるタグを「A」タグを選択します。
- c.「操作ヒント」の「単一リンクをループクリップする」を選択します。
ページめくりボタンの正しい xpath 値は次のとおりです。//a[@id="pnnext"]
d.以下の設定により、クローラーを実際の閲覧行動に近づけ、ブロックされる可能性を低くすることができます。
4.複数の検索結果をスクレイピングする
コンテンツによって、検索結果の表示方法は様々です。
ページ内に似たような構造の検索結果が複数あることをoctoparseに教えるには、以下の手順が普通です。
- a.一番目検索結果のタイトルをクリックします。
- b.一番目検索結果全体が選択されるまで、「操作提案」の一番左のDIVをクリックします。
- c.次に、二番目の検索結果を選択します。
- d.検索結果がすべてハイライトされたことを確認したら「各要素のテキストを抽出する」を選択します。
- この時点で、生成されたフローチャートは次のようになっているはずです(主な違いは、キーワードの数と、ページをめくるかどうかです)。
5. 正しいXpathですべてのレイアウトを網羅する
Q:Xpathを修正する理由を教えください
A:検索結果のコンテンツに応じて、Googleは異なるレイアウトで表示させます(下図)。それらすべてを網羅するためには、正確なxpathを使用して位置を特定する必要があります。
- a.「ループアイテム」ステップに戻り、該当Xpathを下記のように修正します。
//div[@id="search"]/div/div/div[contains(@class,"MjjYud") or contains(@class,"hlcw0c")]
項目 | Xpathタイプ | Xpath値 | 属性 |
---|---|---|---|
キーワード | 絶対Xpath | //input[@role="combobox"] | value |
ページ | 絶対Xpath | //td[@class="YyVfkd"] | デフォルト |
タイトル | 相対Xpath | //h3 | デフォルト |
リンク | 相対Xpath | //h3/.. | href |
紹介 | 相対Xpath | //div[contains(@class,'VwiC3b yXK7lf')] | デフォルト |
次の動画は、最初のフィールドであるキーワードを追加する手順を示しています。
上記のxpathの由来が分からない場合は、xptahを一から勉強する必要があります。でも、基礎編を読めば30分ほどで終わりますのでご安心ください。
6.データ抽出 - データ取得のタスクを実行する
- 「保存」と「実行」をクリックし、データを抽出します。もしくは、左上の「実行」をクリックして自動的にタスクを保存でき、タスクの実行画面に入っています。
- 「ローカル抽出」または「クラウド抽出」(有料版のみ)を選択します。