【Python】Rebuildのエピソード一覧をExcelに出力する
機能
Rebuildのエピソード一覧をExcelに出力するPythonプログラムです。
エンジニア向けのポットキャストで有名なRebuildがあります。
私もよく聞いているのですが、今回はそのエピソード一覧を取得して、Excelに出力します。
一覧ページにはmoreボタンがあるため、全エピソードを取得するためにはスクレイピングでmoreボタンを押す必要があります。
Excelの出力結果は以下です。
サンプル動画
プログラム
#! python3 # 機能 # Rebuildのエピソード一覧をExcelに出力する # 使い方 # 1.Pythonを実行する # 実行コマンド # python rebuild_episode_list.py import time import openpyxl from selenium import webdriver import chromedriver_binary # 一覧ページを開く driver = webdriver.Chrome() driver.get("https://rebuild.fm/") time.sleep(3) # moreボタンを押して、全エピソードを表示する while True: more = driver.find_elements_by_css_selector(".episodes .more") if len(more) == 0: break more[0].click() time.sleep(2) # 出力用Excel wb = openpyxl.Workbook() sheet = wb.active sheet.cell(row=1, column=1).value = "日付" sheet.cell(row=1, column=2).value = "タイトル" sheet.cell(row=1, column=3).value = "URL" # エピソードを取得し、Excelに出力する row = 2 episodes = driver.find_elements_by_css_selector(".episodes .episode") for episode in episodes: date = episode.find_elements_by_css_selector(".date")[0].text anchor = episode.find_elements_by_css_selector("h2 a")[0] sheet.cell(row=row, column=1).value = date.replace("\n", " ") sheet.cell(row=row, column=2).value = anchor.text sheet.cell(row=row, column=3).value = anchor.get_attribute("href") row += 1 sheet.column_dimensions["A"].width = 15 sheet.column_dimensions["B"].width = 70 sheet.column_dimensions["C"].width = 25 wb.save("エピソード一覧.xlsx") print("エピソード一覧をExcelに出力しました。") driver.close()
使い方
- Pythonを実行する
実行コマンド
python rebuild_episode_list.py
openpyxlとseleniumとchromedriver-binaryをインストールしていない場合は以下のコマンドでインストールして下さい。
pip install openpyxl pip install selenium pip install chromedriver-binary
ドライバーのバージョンによっては実行エラーになる場合があります。
また、ログを抑制する方法などもありますので、以下を参考にして下さい。