Python で Hatena Blog のタイトル取得
Hatena Blog の記事 URL を使って,記事のタイトルを Web スクレイピングで取得する。Web スクレイピングでは,beautifulsoup4 を用いる。
Python とライブラリのバージョン
今回,使用した Python ,ライブラリのバージョンは以下のとおり。
- beautifulsoup4, Version 4.11.1
- requests, Version 2.25.1
- pandas, Version 1.3.5
データの概要
本稿で用いた Google Serach Console より取得した “ページ.csv” のデータには,以下の内容が記載されている。(『目指せ!電気主任技術者~解説ノート』の 2022年1月1日~12月31日までのデータである。)
上位のページ,クリック数,表示回数,CTR,掲載順位
https://electrical-engineer.hatenablog.jp/entry/2021/11/01/060000,3975,21963,18.1%,8.97
https://electrical-engineer.hatenablog.jp/entry/2022/01/07/090000,3776,40965,9.22%,6.8
https://electrical-engineer.hatenablog.jp/entry/2022/01/19/090000,1821,25239,7.22%,7.48
https://electrical-engineer.hatenablog.jp/entry/2022/02/20/090000,1754,7893,22.22%,9.43
https://electrical-engineer.hatenablog.jp/entry/2021/10/29/070000,1735,17063,10.17%,9.12
上位トップ 10 の記事タイトルを取得するコード
上位のページ(以下のコードではトップ 10)の URL の Hatena Blog の記事タイトルを取得するコードを示す。
from bs4 import BeautifulSoup
import requests # HTTP 通信
import pandas as pd
import time
df = pd.read_csv('ページ.csv', usecols = ['上位のページ','クリック数','表示回数','CTR','掲載順位'], encoding='utf-8')
# トップ n のページを表示する
n=10
c_url=df['上位のページ'].head(n)
for i in range(len(c_url)):
r0=requests.get(c_url[i])
soup=BeautifulSoup(r0.text, "html.parser")
title=soup.find("a",class_="entry-title-link bookmark")
print("第",i+1,"位:",title.text," : ",df['クリック数'].values[i])
time.sleep(1)
Hatena Blog のタイトル
Hatena Blog 記事の HTML で記事タイトルは以下のように記載されている。(以下の HTML では,記事 URL を “#” に変更。)
<h1 class="entry-title">
<a href="#" class="entry-title-link bookmark">
電力系統の中性点接地の目的と方式
</a>
</h1>
タグが a,class が entry-title-link bookmark であるものを探す。そのタグで囲まれたテキストをタイトルとして取得している。これは,先に示した Python コードの以下の記述である。
title=soup.find("a",class_="entry-title-link bookmark")
コードの実行結果
上記のコードを実行した結果を以下に示す。上記のコードでは,順位,記事のタイトル,クリック数を出力している。
第 1 位: 電力系統の短絡容量 : 3975
第 2 位: 電力系統の中性点接地の目的と方式 : 3776
第 3 位: 同期発電機の特性曲線 : 1821
第 4 位: 同期発電機のリアクタンス : 1754
第 5 位: 電力系統の中性点接地による異常電圧抑制 : 1735
第 6 位: 電力用変圧器の損失と効率 : 1724
第 7 位: 保護リレーシステム : 1555
第 8 位: 変圧器の負荷時タップ切換装置 : 1545
第 9 位: 変圧器の並行運転 : 1352
第 10 位: 三相変圧器における巻線の結線方式 : 1312
更新履歴
- 2023年1月10日 新規作成
- 2024年2月9日 Hatena Blog 記事の HTML を追加
- 2024年3月3日 コードブロックにタイトルを追加
“Python で Hatena Blog のタイトル取得” に対して1件のコメントがあります。