プログラミング

コピペでOK!SeleniumとBeatifulSoupでヘッドレスChromeのスクレイピングをする方法

更新日:

最近クラウドソーシングの案件でも増えてきた

スクレイピング(ウェブサイトの解析)をするために、

コピペで使えるラッパークラスを作ったので紹介します。

なぜこれを作成したかというと、

スクレイピングの方法を調べた時に、そもそも方法が色々出てきたり

SeleniumとBeautifulSoupを使う場合にも別々に解説されていて

スクレイピングやるぞー!  →  じゃあこれで

っていう風にできなかったからです。

(ただのめんどくさがりw)

ちなみにスクレイピングを行うことに関しては、完全に自己責任でお願いいたします。

サイトごとの規約を守って正しくスクレイピングしましょう。

クライン

No More サイト泥棒

まずは、スクリプトだけ見たいんだという方のためにコードを貼ります。

こちらが、作成したクラスになります。

作成したと言っても、まじでラップしただけですが(笑)

とりあえずコピペで動けばオッケー!使い方も適当にやってみる。

という方は、コピーしてすぐにお使いください。

使い方とかもう少し詳しく知りたいという方はこのままお付き合いください。

はじめに、タイトルにある用語について簡単に解説します。

用語解説

  • Selenium:自動でブラウザを操作できるモジュール
  • BeatifulSorp:読み込んだHTML文書をパースして使い易くするモジュール
  • ヘッドレス:ブラウザアプリを立ち上げずに、スクリプトだけでブラウザを操作する(スクレイピングやテストの時に有効)
  • Chrome:みんな大好きGoogle Chrome

これらを使ってスクレイピングしていきますが、
具体的な処理の流れとしては下記のような感じです。

  1. SeleniumでヘッドレスChromeを立ち上げる
  2. スクレイピングしたいURLにアクセスする
  3. BeatifulSorpでHTML文書を解析する

 

準備

具体的な使い方について説明していきますが、

事前にPython3pipが使える環境がある前提になりますのでご容赦ください。

まずはお使いの環境に使用する各モジュールをインストールします。

インストールが完了したら適当な作業用ディレクトリを作成し、

上記コードをコピーしてmain.pyを作ります。(ファイル名はなんでもOKです!)

基本的に準備はこれで完了です。

使い方

実際にクラスを使っていきます。

ここでは、Yahooのトップページを例にとります。

コピペしたソースコードの下に下記を追加してください。

注意点ですが、必ずクラス定義の下に追加するようにしてください。

クラスより先に書くとエラーになります。

最終的に下記のようになって入ればOKです。

くらいん

最初からこっち貼ってくれればいーのに

このファイルを保存して実行してみてください。

Yahoo! Japanと表示されたら成功です。

メモ

ここでもし、chromedriver_binaryに関するエラーが出た場合は

大抵がお使いのChromeとのバージョンの違いによるエラーなので、

エラーメッセージに従って、

chromedriver_binaryのバージョンを合わせればエラーが出なくなります。

 

いかがでしょうか?

スクレイピングしたいURLを引数にわたすだけで、

Seleniumによるブラウザ起動から、BeautifulSoupによる文書解析まで行ってくれます。

BeautifulSoupの自体の使い方はここでは省略しますが、

これだけで非常に便利に解析が出来てしまいます。

是非、スクレイピングをする時の参考にしてみてください。

 

Youtubeチャンネルの紹介

本ブログではYoutubeに、

ミステリ×プログラミングというテーマで動画を投稿しています。
よかったら是非併せて見てください!

よく読まれている記事

1

  現在5年目のエンジニアで26歳です。 今回は20代の現役エンジニアとして、自分も含め転職について考えている方に向けて20代エンジニア転職に完全特化したおすすめのサービスを3つ紹介していき ...

2

これからエンジニアになりたい、プログラミングを使えるようになりたいという方に向けて 山のようにあるプログラミングスクールの中から、特におすすめなスクールをタイプ別に逆引きで3つ紹介します。 &nbsp ...

3

みなさんはを使っていますでしょうか。   本記事を見ていただいているということは、   プログラミングの勉強でを使うことに興味がある、 もしくはこれから動画を購入したいけどどれを買 ...

-プログラミング
-, ,

Copyright© クラインの備忘壺 , 2019 All Rights Reserved.