逆引きPython

PythonでGoogle検索結果からH1/H2/H3タグのスクレイピング行う

投稿日:

PythonでGoogle検索結果からH1/H2/H3タグのスクレイピング行う

今回はPythonのWEBクローリングを用いていろいろ試してみます。

試してみる内容はGoogle検索結果から特定(任意)のキーワードでHITしたサイトのH1/H2/H3のテキストを抽出します。

HITするサイト数は任意で決めることが出来ます。

このサイトでは次のようなことが出来るようになります。

  • Google検索結果から、タイトルとURLをCSVに出力することが出来る
  • URLにアクセスしH1/H2/H3タグを抽出しTextに出力することが出来る

WEBクローリングを行うにあたり、Beautiful Soupを使用していきます。

Beautiful Soupのインストール方法

コマンドプロンプトで「pip install beautifulsoup4」を実行します。
または Anacondaを使用している場合は「conda install beautifulsoup4」を実行します。

PIPを使用してインストールする場合

Anadondaを使用してインストールする場合

「y/n」の選択が求められた場合はyを選択してください。必要なパッケージがインストールされます。

Google検索結果から、タイトルとURLをCSVへの出力方法

list_keywd」に検索したいキーワードを入力してください。

page」に抽出対象のサイト件数を入力してください。

今回は例として「list_keywd」にAI,機械学習を、「page」に5を設定しています。

ここで設定したキーワードに対するGoogle検索結果から、上位のサイトを指定した件数分の取得することが出来ます。

このコードを実行すると「TitleURL.csv」というCSVが作成されます。

TitleURL

それぞれのカラムは以下の通りです。
・No
・タイトル
・URL

これでGoogle検索結果から、タイトルとURLをCSVに出力することが出来きるようになりました。続いて、このCSVを用いて1つずつURLにアクセスし、H1/H2/H3タグの内容を取得していきます。

URLにアクセスしH1/H2/H3タグを抽出しTextへの出力方法

OutPutTextという関数を作成しています。
この関数の引数は「row」「tag」の2つです。

row」は先ほど生成したCSVファイルの1行に相当します。

すなわち、row[0]はNo,row[1]はタイトル,row[2]はURLが格納されています。

tag」は"h1","h2","h3”のいずれかが指定されます。

これを実行すると、No_XXX-hX.txtという形式でテキストファイルが作成されます。

例えば、No1のh2タグを抽出した場合は「No_1-h2.txt」というファイル名です。

No_1-h2.txt」にはGoogle検索結果からHITした上位1番目のH2タグのテキスト内容が出力されます。

もし、H2タグが無い場合や、テキストではなかった場合は0バイトの空ファイルが出力されます。

指定する件数が多い場合は大量のテキストが出力され、時間もかかるので注意してください。

また、「AllText.txt」というファイルに抽出したすべての情報が出力されます。

個別にテキストファイルを確認するのが面倒だという方や、1テキストにまとめたいという方は参考にしてください。

参考サイト:

以下のサイトを参考にさせて頂きました。
PythonのrequestsとBeautifulSoupでGoogle検索結果から、タイトルとURLと説明文だけを抜き取る
http://arakan-pgm-ai.hatenablog.com/entry/2018/01/17/080000

-逆引きPython
-, , ,

Copyright© AI人工知能テクノロジー , 2019 All Rights Reserved.