簡単!PythonでWEBスクレイピング!

最近よく聞く言葉「スクレイピング」とは?気になったのでやってみました。やってみると簡単だったのでまとめていきます。

WEBスクレイピングとは?

英語で”scrape”とは「削ること」とありますが、ここでは「ウェブサイトのデータを必要な部分だけ抽出して利用すること」として捉えています。

自分が使うデータをWEBから必要なぶんだけ持ってくることです!

簡単に言うと、野球の結果をまとめたサイトから自分の応援しているチームの結果だけを取り出すようなものです。

環境構築

今回はPythonを使用します。

Pythonの環境についてはpyenvなどを使用することをオススメします。

ここではPythonの環境構築については省略します。

スクレイピングにはPythonのライブラリのBeautifulSoupを、ページの取得にはrequestsを使用します。

でインストールをしてください。

スクレイピングをする

早速スクレイピングをします。

まずはGoogleのトップページをスクレイピングしてみます!

2行目までで必要なライブラリをimportしてきています。

4行目でgoogleのページを取得してます。

ちなみにhtml.textでも可能です。

.textはunicodeのテキストで、.contentはバイナリで取得できます。

5行目で取得したデータをHTMLにparseしています。

6行目でそれを表示するようにしています。

ガーと文字列が表示されれば成功となります。

要素を指定する

次に取得する要素に条件を加えていきます。

で先頭の<div>の要素を取得します。

でも可能です。

全てを取得するには

とします。

要素から情報を取り出す

取得した要素から属性を取得するには(今回はid)

取得した要素の中の文字を取得するには

入れ子になっている要素も取得できます!

要素に条件を加えて取得する

要素にクラスや属性で指定を加えます。

クラス「sample-class」、ID「sample-id」のdiv要素を取得します。

でも同じように要素を取得できます。

またタグの指定は必須ではないです。

実践

実際にGoogleのTOPから画像という文字列を取得してみます。

「画像」という文字が出力されれば成功です。

最後に

今回は簡単にBeautifulSoupでスクレイピングをしました。

他にもライブラリを追加すれば正規表現で要素を取得したりもできます。

また、取得した要素については書き換えなども行えます。

そして最後のGoogleのスクレイピングで違和感を覚えた人がいると思います。

ブラウザのデベロッパーツールの表示と、BeautifulSoupの取得した表示が違うためです。

BeautifulSoupは動的な要素は取得できないのです。それらについてはSeleniumを使用することで解決します。

Seleniumを使用したより実践的なスクレイピングについても後日記事にしますのでそちらをご覧ください!

それでは!また次回!

このブログの購読はこちらから!↓

スポンサーリンク