App Engineerの開発ダイアリー

Flutterや開発活動に役立つツール作りなど

【Python】はてなブログの注目記事の一覧を抽出する

f:id:Simoroid:20210510013203p:plain
はてなブログの注目記事の一覧をスクレイピングするプログラムをPythonで実装してみます。
f:id:Simoroid:20210510013544p:plain
Pythonスクレイピングするための環境準備は下記に記載しています。
ikoda.shop

◇処理の流れは
1.はてなブログのトップページへのリンクを変数定義
2.ヘッドレスブラウザ(GUI表示無しのブラウザ)にページを読み込む
3.「注目」の領域をクラス名で検索し、html形式の情報を取得
4.複数存在するh3タグを全て取得することですべての注目記事のタイトルとリンクを取得
5.ブラウザオブジェクトの後始末

#!/usr/bin/env python3

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import selenium
from bs4 import BeautifulSoup

# はてなブログのトップページへのリンクを変数定義
TARGET_URL = "https://hatenablog.com/"

# ヘッドレスブラウザ(GUI表示無しのブラウザ)にページを読み込む
options = Options()
options.add_argument('--headless')
browser = webdriver.Chrome(chrome_options=options)
browser.get(TARGET_URL)

# 「注目」の領域をクラス名で検索し、html形式の情報を取得
html = browser.execute_script("return document.getElementsByClassName('serviceTop-recommend')[0].outerHTML")
soup = BeautifulSoup(html,"html.parser")

# 複数存在するh3タグを全て取得することですべての注目記事のタイトルとリンクを取得
article_list = soup.find_all("h3")
for article in article_list :
     print(article.a.get_text() + ":" + article.a["href"])

# ブラウザオブジェクトの後始末
browser.quit()

下記のように記事のタイトルとリンクが一覧で抽出できました!
f:id:Simoroid:20210508093404p:plain

よんで頂きありがとうございます。
良ければフォローお願いします!