PythonとSeleniumを使用してファイルをアップロードする方法について説明します。この記事は、Webページ上でのファイルアップロード操作を自動化するためのガイドです。
Seleniumでのファイルアップロード
Seleniumでのファイルアップロードは、send_keys
メソッドを使用します。手動でアップロードする際はボタンを押すためclick
メソッドを使いたくなるところですが、以下のように行います。
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
import os
# アップロードするファイルのパス
downloaddir = os.getcwd() + '\\\\testpic.jpg'
# ブラウザの起動
driver = webdriver.Chrome()
driver.get('https://~') # 対象のWEBサイトを指定
# ページが開くまで3秒待機
time.sleep(3)
# 「ファイルを選択」ボタンの要素を取得
element = driver.find_element(By.NAME, 'fileupload')
# ファイルパスを引数にしてアップロード
element.send_keys(downloaddir)
# 「送信する」ボタンをクリック
btn = driver.find_element(By.ID, 'uploadbtn')
btn.click()
time.sleep(3)
# ブラウザを閉じる
driver.close()
注意点
- ファイルアップロードの操作は、通常ログイン後のページで行われます。そのため、Seleniumで操作する場合はログイン処理から行うことになりますが、短時間に大量にログイン処理を行うとスパムとみなされCAPTCHA認証が出る場合があります。
- ファイルアップロードの際には、
send_keys
メソッドを使用してファイルのパスを指定します。このとき、パスは絶対パスである必要があります。
以上がPythonとSeleniumを使用したファイルアップロードの基本的な手順です。この情報があなたのプロジェクトに役立つことを願っています。