プログラミング

Pythonのbeautifulsoupでスクレイピングを実装してみよう!

こんにちは!

消費財メーカーでデジタルマーケティングに携わっているウマたんです!

Webサイトのテキスト情報を抽出したい時に非常に便利なのがスクレイピングという技術。

だけど、実装するの難しそう・・・

いやいや、実はPythonを使えばスクレイピングが簡単に実装できるんです。

この記事では、スクレイピングについてまとめると同時にPythonでの実装も行っていきたいと思います。

スクレイピングは非常に便利!マスターしよう!

スクレイピングとは

スクレイピングは、Webサイトから自動的にテキスト情報を抽出する技術。

毎回手動でデータを引っ張ってくるのは非常に面倒であるため、スクレイピングを使って自動でデータを引っ張ってくることが多いです。

非常に応用の範囲が広い技術で、様々な場面で用いられています。

例えば、スクレイピングを使うことで株価の情報などを自動的に日々抽出して自動売買するなど応用が可能です。

スクレイピングに必要な知識・技術

さて、そんなスクレイピングですがどのような技術があれば実装が可能なのでしょうか?

Pythonの技術

スクレイピングはPythonの「Requests」「beautifulsoup」というライブラリを使えば簡単に実装可能です。

スクレイピング後のデータに関してもPythonを用いて、解析を行うことが多いでしょう。

簡単に実装可能ですが、Pythonの技術はある程度必要です。

HTMLにおけるDOMの知識

実装はPythonを用いて行いますが、HTMLの構造そしてDOMについて理解しておくことが必要です。

DOMはドキュメントオブジェクトモデルの略で、HTMLを外部から操作するような仕組み・Webサイトの構造のことを表します。

HTMLでは、bodyタグやheadタグなど様々なタグを用いて階層構造を取ります。

そのタグの中にidやclassを記述することで、様々な表現が可能。そのidやclass、そしてタグを指定してスクレイピングを行うためHTML・DOMの知識が必要なのです。

コーディングするわけではないため、技術は必要ありませんがソースを読んで理解できるレベルの知識は必要になってきます。

スクレイピングをPythonで実装

それでは、早速Pythonを用いてスクレイピングを実装していきましょう!

以下がコードになります。

URLを配列に格納して渡すと、pタグに囲まれたテキスト情報を配列に格納して返してくれるクラスScrを作りました。

URLを複数入れても複数データで返してくれます。

soup.find_all(“p”)の部分でタグを指定しており、今回はpタグを全て引っ張ってくる指定をしています。

ここの部分を変更することで抽出するタグを変更することができます。

スクレイピングの注意点

スクレイピングを行う際はいくつか注意点があるので確認しておきましょう!

スクレイピングが禁止されていないかどうか確認する

スクレイピングは、非常に便利な技術だけに悪用される可能性もあります。

そのためWebサイトによってはスクレイピングを禁止している場合があります。

スクレイピングが禁止されていないかどうか確認して行うようにしましょう!

スクレイピングによって負荷をかけないようにする

スクレイピングを頻繁に行うとサーバーに負荷をかけることになります。

そのため頻繁にリクエストを送らないようにsleepメソッドを使用してリクエストの時間を空けるようにしましょう!

Pythonでスクレイピング まとめ

スクレイピングについて見てきました。

スクレイピングは、様々な分野に応用が可能な非常に有用な技術です。

PythonのスキルとHTMLの知識で簡単に実装可能なので是非試してみてください!

ちなみに以下の記事でPythonのオススメ本についてまとめていますのでそちらもご参考にしてください。

厳選10冊!データ解析(R・Python)の勉強におすすめな本こんにちは!デジタルマーケターのウマたん(@statistics1012)です 統計学を勉強する学生やデータ解析を行う方々が良く使...