底辺プログラマーBlog
日常で学んだことなどを記事にしていきます。
Python

Beautiful Soupでスクレイピング

今回はBeautiful Soupを使用してスクレイピングを行ってみます。

以前も同じような内容の記事を書きましたが、
前回と今では理解度に差があるので
それを踏まえて記事として残しておきます。

bs4を使用します。
Pythonのversionは3.7.2です。
今更bs3の記事とか書きませんのであしからず。

Contents

Beautiful Soupとは?

簡潔に言い表すとHTMLファイルからデータを抜き出すためのライブラリです。

インストールの仕方とかはコチラを見て下さい。

Beautiful Soupと他のライブラリの組み合わせ

Beautiful Soupを使用する際、用途に沿って他のライブラリと組み合わせることになります。

  • Web上からHTML情報を取得するために使用するrequests
  • 正規表現を使用するためのre
  • リクエストを連続に投げないためのtime

ひとまずこれだけあれば大体のことができます。

スクレイピングを行った情報をWordpressに投稿する場合はwordpress用のライブラリか、REST_APIを使用する必要があります。

特定のサイトから見出しを取得する

Beautiful Soup 4.2.0 Doc. 日本語訳 (2013-11-19最終更新)

上記のリンクから情報を取得します。

今回は見出しにも使用されている『クイックスタート』という文字列を取得します。


bs4のselect_oneという関数はCSSセレクタと言われ、タグの階層構造を
上のコードのようにdiv > #id7 > h1みたいな辿り方をすることができます。

これは欲しい情報がわかっている場合の処理です。

こんな情報取得してもしょうがないという方!?確かにその通りなので
ちょうどいい難しさでちょうどいい内容のサイトがあればスクレイピングをしたいと思います。

requestsモジュールでのSSLエラー

ちょっとはまってしまったので記載しておきます。

SSL認証が必要なページに対してアクセスを行うと、SSLエラーを返されることがあります。

雑な方法ですが、requests.getの引数にverify=Falseを設定すると認証を回避することができます。おすすめはしませんが。

 

ライブドアブログのニュースを取得してみよう

今までのコードではBeautiful SoupのCSSセレクタを使用していました。
今回はFind_allを使用してh3タグを一気に取得してみます。

上記のコードでは終了条件を設定していませんが、h3タグは記事に見出しにしか使用されていないようなので問題はなさそうです。

スクレイピングを行う上で大事なこと

スクレイピングを行う上で大事なことは

どのようにスクレイピングを行うのかという事ではなく

スクレイピングしたデータをどのように活用するのか

という事です。

現在ではまとまったデータは非常に価値の高いものになりました。
出来れば取得したデータで一儲けできるような案を考えていきたいものです。

 

%d人のブロガーが「いいね」をつけました。