はじめに
以下の記事を参考にさせていただきました。
Python Web スクレイピング 実践入門 BeautifulSoup4 のチートシート(セレクターなど)
今回目標とするデータは Qiita のトップページに乗っているトレンドです。
このように
<div data-hyper-app='Trend' data-hyper-props='trendのjsonデータ'>
と言う形でトレンドの JSON データが存在しているので、それの取得を目標にします。
実装
使うのは BeautifulSoup
と呼ばれるライブラリです。
import urllib.request
from bs4 import BeautifulSoup
import json
QIITA_TOP_URL = 'https://qiita.com/'
def get_trend_items():
req = urllib.request.Request(QIITA_TOP_URL)
with urllib.request.urlopen(req) as res:
body = res.read()
soup = BeautifulSoup(body, "html.parser")
target_div = soup.select('div[data-hyperapp-app="Trend"]')[0]
trend_items = json.loads(target_div.get('data-hyperapp-props'))
return trend_items
完成!