[超基礎]Pythonでスクレイピングを体験してみた[応用可能]

Python プログラミング

こんにちは。kakeです。

今回は、Pythonを用いてスクレイピングというものをやってみようと思い、備忘録もかねて残しておきます。

スポンサードサーチ

[超基礎]Pythonでスクレイピングを体験してみた[応用可能]

[超基礎]Pythonでスクレイピングを体験してみた[応用可能]
Pythonでできることとして、スクレイピングというのがあります。

スクレイピングとは

スクレイピングとは、WEBページから欲しい情報、データを抽出する技術のことです。

今回、実装する簡単なスクレイピング

今回実装していくのは下記の通りです。

  • 自分のブログページからスクレイピング
  • よく読まれているブログのタイトルを取ってくる

上記のものです。

今回は、スクレイピングの超基礎ということで体験的にやるだけなので、こういう仕様です。また、スクレイピングはサーバに負荷をかける場合があったり、ルールがあったりと複雑なので、自分のブログページとしています。

とりあえず、動きとしては以下のものです。ご覧ください。
pythonスクレイピング-例

Pythonのコード公開、解説

それでは早速Pythonのコードを公開しつつ、解説していきます。まず、使用するライブラリは以下の通りです。

使用するライブラリ

  • requests
  • BeautifulSoup

上記の2つのライブラリを利用していきます。requestsはurl(WEBページ)を取得するために利用します。また、BeautifulSoupはWEBページの情報やデータを取得するために利用するライブラリです。

手順

  • ライブラリのインポート
  • URLを取得
  • BeautifulSoupで中身をスクレイピング
  • ‘よく読まれている記事’の部分の文字だけ抽出

このような手順でいきます。簡単ですね。

コード全内容

コードは以下の通りです。

import requests
from bs4 import BeautifulSoup

r = requests.get("https://kakerunoblog.com/")
soup = BeautifulSoup(r.content, 'html.parser')
popular = soup.find(class_='popular').text
print(popular)

とても短いです。上の二行がライブラリのインポートです。
 
ポイントとしては、findメソッドです。’よく読まれている記事’の箇所を抜き出すためにfindメソッドを使いつつ、クラス名で条件指定します。クラスは以下のように調べます。
google検証
クロームで右クリックをして検証をおし、上の画面にします。そしたら、番号の順に進めていきます。二番の所では欲しい要素が’よく読まている記事’なのでこの辺にカーソルを合わせると、要素がわかります。今回は、divで囲まれている場所でクラス名がpopularと付いています。この辺はHTMLやCSSの知識がないときついかもです。
 
とりあえず、こんな感じでクラス名を出しましょう。
 
話を戻します。今回は、文字だけ抽出したい(HTML部分はいらない)ので.textとして文字だけスクレイピングしました。あとはprintしておしまい。

応用させれば、もっと自動化ができて便利になると思う

今回、やったのは本当に体験程度です。これを応用していけばいろんなことを自動化できます。例えば、下記。

  • あるキーワードに対して、Googleの検索上位10位のタイトルをスクレイピング(ブロガーには良い)
  • アフィリエイトの売り上げをスクレイピング
  • 株価の変動をスクレイピング

などなど。

エクセルシートにまとめるのもいい

今回の例では、抽出しただけですが、応用して、エクセルシートにまとめさせたり、一日一回スクレイピングするようにさせたりしたらもっと面白いと思います。

注意:スクレイピングは慎重に!

スクレイピングは慎重にやったほうがいいです。サーバーに高負荷をかけてしまい、サーバーダウンさせてしまったり、そもそもスクレイピングを禁止している場合があったりするからです。
 
恐ろしいのは、これらが法律違反となることもあり、本格的なスクレイピングをする際にはまず、そこらへんの知識をしっかり入れてやらないとあとあと痛い目にあうかもなので注意です。

おすすめのスクレイピング動画一本

おすすめの動画を紹介します。僕はこの動画はかなり好きです。目的も面白くて、学べるのでぜひ時間あれば、やってみてください。