Python(パイソン)でGoogleの検索結果をスクレイピングする【コピペOK】

PythonでGoogleの検索結果をスクレイピングする【コピペOK】

こんばんは、氷犬です。

プログラミング言語「Python(パイソン)」で、Googleの検索結果に出てくるページの情報を取得する方法をまとめました。

Googleの検索結果から情報を取得することで、ブログやアフィリエイトサイトのリサーチが効率よくできます。

参考としてはこんな感じです↓

スクレイピング結果をCSVで確認する

Webスクレイピングという技術なのですが、プログラミングにあまり慣れていない人でも簡単にできるので、ぜひ試してみてください。

〇この記事の内容

PythonでGoogleの検索結果をスクレイピングするために必要な知識

PythonでGoogleの検索結果をスクレイピングする手順

  1. Pythonの環境構築をする
  2. 必要なライブラリをインストール
  3. スクレイピングするためのコードを書く【コピペOK】
  4. 実際にコードを動かしてみる

Pythonで検索結果をスクレイピングするときの注意点【著作権】

なお、対象としては、「HTML/CSSがどういうものかわかるけど、Pythonは学習したことない人」をイメージしています。たとえば、Web制作をしている人やWordPressの簡単なカスタマイズができる人という感じですね。

では、さっそく解説していきますm(_ _)m

PythonでGoogleの検索結果をスクレイピングするために必要な知識

Webから必要な情報を取得する技術を「スクレイピング」といいます。

スクレイピングは、いろいろなプログラミング言語でできるのですが、この記事では「Python(パイソン)」というプログラミング言語を使ってスクレイピングをしてみました。

理由としては、以下の2つ。

  • スクレイピングといえばPythonというイメージがあった
  • 調べたらPythonなら簡単にスクレイピングできそうだった

とりあえず「コードを動かすこと」を第一に考えました。

スクレイピングできる情報

この記事では、Googleの検索結果に出てくる記事から、以下の情報を取得することを目標にしています。

スクレイピングで取得する情報

  • titleタグ
  • h1タグ
  • h2タグ
  • h3タグ
  • 文字数

スクレイピングするために必要な知識

スクレイピングをするにあたって、必要な知識はこんな感じです。

  • HTML/CSSの基礎:HTMLタグの意味がわかる
  • Pythonの基礎:基本的な文法がわかる
  • テキストエディタの使い方

HTML/CSSとPythonの基礎は、ProgateのレッスンをこなせばOKかなと思います。実際に僕もProgateを使って学習しました。

僕の場合は、HTML/CSSは既に知っていたので、Pythonだけを学習した感じです。

PythonでGoogleの検索結果をスクレイピングする手順

Pythonでスクレイピングの仕方は、以下の4つの手順で解説していきます。

Pythonでスクレイピングする手順

  1. Pythonの環境構築をする
  2. 必要なライブラリをインストール
  3. スクレイピングするためのコードを書く【コピペOK】
  4. スクレイピングコードを動かす

①Pythonの環境構築をする

ProgateなどでPythonを学習したら、さっそく環境構築をしていきます。
※環境構築=自分のパソコンでプログラムを動かせるようにすること

Pythonの環境構築も、Progateにわかりやすい記事があったので、以下の記事を参考にしてください。

WindowsとMacの両方で環境構築をしてみたところ、Windowsは簡単なんですが、Macは少しめんどくさかったなという印象です。

ただ、環境構築をしないことにはPythonが使えませんので、がんばりましょうm(_ _)m

②必要なライブラリをインストール

Pythonでスクレイピングをするために、必要なライブラリをインストールします。

ライブラリとは、便利なプログラムがまとまったツールのことですね。ライブラリを使うことで、長いコードをゼロから書く必要がなくなります。

今回使うライブラリは以下の3つです。

  1. Requests:Googleの検索結果にアクセスする
  2. Beautifulsoup4:Googleの検索結果から情報を取得する
  3. lxml:取得した情報を変換する

「こんなライブラリを使うのか」という程度の理解でOKです。

Windowsであればコマンドプロンプト、Macであればターミナルという黒い画面を開きます。
※僕はWindowsユーザーなので、コマンドプロンプトでの説明になりますが、Macでも基本は同じです。

コマンドプロンプト

ライブラリをインストールするためには、pipというツールを使います。

pipはPythonをインストールすると、自動的についてくるのですが、一応入っているかどうかを確認しておきましょう。

where pipというコマンドを入力すると、pipの場所を確認できます。

where pip

pipがあることを確認したら、先ほどの3つのライブラリをインストールしていきましょう。

以下の3つのコマンドを順番に入力していけばOKです。

pip install requests
pip install beautifulsoup4
pip install lxml

※Macだと、pip3 install requestsと、pipのあとに3がつきます。

ライブラリのインストールが終わるまで、気長に待ちます。5分もあれば終わるはず。

終わったら、pip listと打ち込んで、正しくインストールができているか確認しておきましょう。

pip listで確認する

③スクレイピングするためのコードを書く【コピペOK】

Pythonの環境構築と、pipを使ったライブラリのインストールを終えたら、さっそくコードを書いていきます。

まず、デスクトップに「Python」というフォルダを作りましょう。

Pythonというフォルダを作る

フォルダを作ったら、その中に「script.py」というPythonファイルを作ります。作り方は人それぞれですが、僕は「テキストエディタでファイルを作って保存する」という流れにしています。

そして、作った「script.py」の中に、以下のコードをコピペします。
※スマホからだとコードが表示されないので、パソコンから見てくださいm(_ _)m

このコードは、Google検索順位チェック用のSEOツールをPythonで自作して自動化するを参考にさせていただいたのですが、若干使いやすいようにアレンジしてあります。

④スクレイピングコードを動かす

script.pyにコードをコピペしたら、あとは実際に動かすだけですね。

先ほどのコードの、以下の部分に検索したいキーワードを入れて保存します。今回は、「Python スクレイピング 検索結果」にしてみました。

スクレイピングするキーワードを入力する

保存したら、スクレイピングのコードを動かしてみましょう。

コマンドプロンプト(ターミナル)で、デスクトップにあるPythonのフォルダに移動します。

cdコマンドでPythonのフォルダまで移動する

※cdは、change directoryの略です。

Pythonのフォルダに移動できたら、python script.pyでscript.pyを動かします。
※Macだと、python3 script.pyになります。

スクレイピングコードを動かす

1分くらいかかるので、気長に待ちましょう。

処理が終わると、実行したscript.pyと同じフォルダに、CSVが出力されています。

スクレイピングの結果は同じフォルダに出力されます

ExcelやGoogleスプレッドシートで開いて、中身を確認しましょう。

今回はGoogleスプレッドシートで開いてみました。

スクレイピング結果をCSVで確認する

以上でスクレイピング完了です。これで効率よくリサーチできるようになりますね(^_^)

Pythonで検索結果をスクレイピングするときの注意点

スクレイピングしたデータは、あくまでも自分で使う程度にしておきましょう。

というのも、Web上のデータにも著作権があるので、スクレイピングしたデータを公開するのは著作権法違反になる可能性があるからです。なので、この記事であげている画像もわざとモザイクをかけています。

たまに弾かれることもあります

スクレイピングすると、たまに「検索結果では見れるけど、CSVに空白で出力されるページ」があると思いますが、おそらくスクレイピングを弾いているのだと思います。

その場合はあきらめて、直接確認しましょう(-_- )

必要に応じてカスタマイズできます

この記事で紹介したコードは、「キーワードを打ち込む⇒コマンドプロンプトで実行」という、手動で行うためのコードです。

ただ、カスタマイズすれば、「キーワードリストを読み込む⇒まとめて実行してCSVに整理する」というツールも作れると思います。

コード自体は割と単純なので、必要に応じていろいろ付け足して、カスタマイズしてみてくださいm(_ _)m

 

なお、「コード書くのめんどくさいぜ」という方は、YURI(@r_yuriii)さんの「Headline Checker」というツールがおすすめです。共起語も取得してくれる優れものです。

 

今回はスクレイピングのツール(ほぼコピペ)でしたが、必要に応じて別のコードも書いていこうかなと思います。

興味があればTwitterをフォローしていただけると嬉しいです。

Twitter:@icedog_410