プログラミング

【Python】Seleniumでファイルをアップロードを自動化するサンプルコード

この記事は約5分で読めます。

 

こんにちは、今回はPythonとSeleniumを使用してファイルをアップロードする方法について紹介します。ファイルアップロードはWebアプリケーションで非常に一般的な機能であり、Seleniumを使用することでブラウザ上で自動的にファイルをアップロードすることができます。

 

前準備

 

前提条件

 

・ Python 3.x

・Selenium==4.6.0

 

まず、必要なライブラリをインストールします。

 

$ pip install selenium
$ pip install webdriver_manager

 

関連記事:SeleniumのChromeDriverの更新・バージョン管理を自動化する方法

 

アップロードサイトのHTML構造例

 

基本的にWebサイトのファイルをアップロード画面のHTMLの構成は以下のような感じになっています

 

<ソースコードイメージ>

 

<body>

<form action=”./confirm.php” method=”POST” enctype=”multipart/form-data”>

<table border=”1″>

<tr> <th>ファイル</th>

<td> <input name=”file” type=”file”> </td>

</tr>

</table>

<input name=”submit” type=”submit” value=”送信”>

</form>

</body>

 

 

<HTMLイメージ>

ファイル

 

 

Seleniumでサイトにファイルをアップロードする

 

Seleniumのdriver.getでアップロード画面にアクセスした状態でdriver.find_element()でinputタグのXPATHを検証ツールで特定し、それをコピーしてformのinputタグのXPATHを指定します

 

XPATHイメージ例:~~~~~~~~~/form/input”
elements = driver.find_element(By.XPATH, "<inputタグのXPATH>")
ちなみにdriver.find_elementはSelenium3.0だとdriver.find_element_by_xpath()と記述します

そしてそれに対して.send_keys(“ファイルパス”)でローカルPCのファイルのPATHを指定することでWebサイトに対してファイルをアップロードを行うことが可能です

 

elements.send_keys('<ローカルPCにあるアップロードしたいファイルのパス>')

 

 

スポンサーリンク
スポンサーリンク

Seleniumでファイルをアップロードするサンプルコード

 

上記の処理をまとめると以下のようになります

 

from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
from selenium import webdriver

driver = webdriver.Chrome(ChromeDriverManager().install())

driver.get("<アップロード先のURL>")

# ファイルをアップロード
elements = driver.find_element(By.XPATH, "<inputタグのXPATH>")
elements.send_keys('<ローカルPCにあるアップロードしたいファイルのパス>')

# アップロードボタンをクリック
button = driver.find_element(By.XPATH, "<submitタグのXPATH>")
button.click()
driver.quit()

 

WindowsのファイルのPATHについて

 

<ローカルPCにあるアップロードしたいファイルのパス>で指定するアップロードするファイルのパスはWindowsだとエスケープ文字対策でファイルパスの文字列の先頭にrを付ける必要があります。

 

例えば、Usersの直下のフォルダのパスを指定する場合は以下のようなイメージです

r"C:\Users\81903"

 

以上で、PythonとSeleniumを使用してファイルをアップロードする方法がわかりました。ファイルがアップロードされた後、送信ボタンをクリックしてフォームを送信することができます。

 

これは、それぞれのWebアプリケーションによって異なりますが、基本的にはsubmit()メソッドを使用して送信ボタンをクリックします。 以上がPythonとSeleniumを使用したファイルアップロードの方法です

 


プログラミング・スクレイピングツール作成の相談を受け付けています!

クラウドワークス・ココナラ・MENTAなどでPython・SQL・GASなどのプログラミングに関する相談やツール作成などを承っております!

過去の案件事例:

  • Twitter・インスタグラムの自動化ツール作成
  • ウェブサイトのスクレイピングサポート
  • ダッシュボード・サイト作成
  • データエンジニア転職相談

これまでの案件例を見る

キャリア相談もお気軽に!文系学部卒からエンジニア・データサイエンティストへの転職経験をもとに、未経験者がどう進むべきかのアドバイスを提供します。


スポンサーリンク
/* プログラミング速報関連記事一覧表示 */
ミナピピンの研究室

コメント

  1. […] 関連記事:【Python】Seleniumでファイルをアップロードするサンプルコード […]

  2. […] 関連記事:【Python】Seleniumでファイルをアップロードするサンプルコード […]

  3. […] 関連記事:【Python】Seleniumでファイルをアップロードするサンプルコード […]

  4. […] 関連記事:【Python】Seleniumでファイルをアップロードするサンプルコード […]

タイトルとURLをコピーしました