pip install pandas selenium
import pandas as pd
import os
from selenium import webdriver
from urllib.request import urlretrieve
def download_from_extension_url(browser, url, download_path):
"""extension:// URLからリソースをダウンロードするための関数"""
browser.get(url)
# 必要な操作をSeleniumで実行 (例: ボタンクリックやフォーム入力など)
# ここを実際の操作に合わせて調整する必要がある
# ...
def main():
# Excelファイルの選択
file_path = input("Excelファイルのパスを入力してください: ")
# Excelファイルの読み込み
df = pd.read_excel(file_path, sheet_name="生技_作業手順")
# フィルタリング
df_filtered = df[df['A'].str.startswith("〇", na=False)]
# ダウンロード先のフォルダを設定
download_folder = os.path.join(
"C:\\Users\\takka\\OneDrive\\デスクトップ\\ここに保存",
f"{pd.Timestamp('now').strftime('%y.%m.%d')}_{os.path.basename(file_path).replace('.xlsx', '').replace('.xls', '')}"
)
# ダウンロード先のフォルダが存在しなければ作成
if not os.path.exists(download_folder):
os.makedirs(download_folder)
# Microsoft Edgeのドライバを使用してブラウザを起動
browser = webdriver.Edge()
for index, row in df_filtered.iterrows():
file_name, file_url = row[3], row[4]
# 必要なデータの確認
if pd.isna(file_name) or pd.isna(file_url):
print(f"{index}行目に必要なデータが不足しています。")
continue
target_file_path = os.path.join(download_folder, f"{file_name}.pdf")
# "extension://"のURLの場合
if file_url.startswith("extension://"):
download_from_extension_url(browser, file_url, target_file_path)
else:
# 通常のURLの場合、ダウンロード
try:
urlretrieve(file_url, target_file_path)
except Exception as e:
print(f"{index}行目のファイルをダウンロードできませんでした。不正なURLかもしれません: {file_url}")
browser.quit() # ブラウザを閉じる
print("処理完了!")
if __name__ == "__main__":
main()