Python

「Python + Selenium」でファイルをアップロードするには?

Python+Seleniumでファイルをアップロードするには?

私がPythonを使い始めたのは「YouTube Studio」作業の自動化のため。
そうすると、避けて通れないのがファイルのアップロード作業です。
以前、自動化していた「iMacros」では1文でアップロードできましたが、Pythonでは如何に?
なんと、Pythonでも1文です。
その方法をまとめました。

 

ファイルをアップロードするコードの書き方は?

inputタグ(type=file)要素に対して、send_keys()でファイル名を指定します。
「YouTube Studio」を例にすると、HTMLは次の通り。

<input type="file" name="Filedata" multiple="" aria-hidden="true" style="position: absolute; overflow: hidden; height: 0px; width: 0px; opacity: 0; left: 0px; top: 0px; display: none;">

この要素に対して、アップロードしたい動画のパスをsend_keys()で送ります。

from selenium import webdriver
driver = webdriver.Chrome('【chromedriver.exeの保存場所】')
 
driver.find_element_by_name('Filedata').send_keys('【アップロードした動画ファイルの保存場所】')

アップロードの処理自体は、これだけです。
あとは、前後に必要な処理を加えてあげれば、「YouTube Studio」で動画のアップロード作業自動化が見えてきます。

 

まとめ

Pythonを使ってブラウザへファイルのアップロードをするには、inputタグにsend_keys()でファイル名を送ります。
iMacrosも簡単でしたが、Pythonも簡単でとても助かりました。

-Python
-, , , , , ,