[備忘録]Pythonで特定のclassの内容をスクレイピングする


概要

PythonのBeautifulSoup4で特定のページの特定のclassの内容を取得する方法のメモ。

インストール

必要なライブラリをインストール

$ pip install beautifulsoup4

スクレイピング

Qiitaの自分のプロフィール欄を題材に試してみます。

自分の記事一覧から各記事のタイトルを取得します。

ソースコードはこちら。

必要に応じて対象サイトのURL、要素とclass名を書き換えてください。

scraping.py
#モジュールのインポート
import urllib.request
from bs4 import BeautifulSoup

#対象のサイトURL
url = "https://qiita.com/sksk_go"

#URLリソースを開く
res = urllib.request.urlopen(url)

#インスタンスの作成
soup = BeautifulSoup(res, 'html.parser')

#必要な要素とclass名
name = soup.find_all("div", class_="ItemLink__title")

#取得したタイトル情報を出力
ret = []
for t in name:
    ret.append(t.text)

print(ret) # ['item1', 'item2', ~]

実行結果

$ python scraping.py
['AIに自分の顔を判定させたら失敗した話(番外編)', '○○に似てると言われ困ったので、AIに判定させてみた', 'obnizで夏っぽいことしてみた', 'LINEで減塩量を可視化しようとした話', 'IoTを活用して、ただいまと言ったらおかえりが返ってくる仕組みを
作る', '悩める恋心を助けるためのLINE Botを作ってみた']

成功してますね。

業務でもたまに使うのでメモ代わりに。