Python實(shí)現(xiàn)對(duì)百度云的文件上傳(實(shí)例講解)
環(huán)境準(zhǔn)備
python3.6
PyCharm 2017.1.3
Windows環(huán)境
框架搭建
selenium3.6
安裝方法:
pip install selenium
實(shí)現(xiàn)步驟:
一、步驟分析
1、選擇“賬號(hào)密碼登錄”
2、用戶(hù)名、密碼輸入,登錄
3、文件上傳
注:本文主要介紹利用selenium包下的webdriver加載Firefox瀏覽器。
二、元素捕捉
利用火狐瀏覽器firebug插件復(fù)制控件的XPATH路徑,注:Python3.6對(duì)應(yīng)Firefox版本40.x,暫不支持最新版本50.x。
1、點(diǎn)擊“賬號(hào)密碼登錄”,獲取其源文件
效果圖如下:
點(diǎn)擊右鍵,復(fù)制Xpath路徑:/html/body/div[1]/div[3]/div[6]/div/div[6]/div[2]/a
登錄按鈕和文件上傳同上,獲取其相應(yīng)的Xpath路徑
代碼:
#選擇賬號(hào)密碼登錄 driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[6]/div[2]/a').click() # 登錄 driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[3]/form/p[5]/input').send_keys('username') driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[3]/form/p[6]/input').send_keys('password') driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[3]/form/p[9]/input').click()
2、登錄成功后,點(diǎn)擊文件上傳,彈出文件對(duì)話(huà)框
“上傳”的Xpath路徑為://*[@id="h5Input0"]
代碼:
#上傳 driver.find_element_by_xpath('//*[@id="h5Input0"]').click()
點(diǎn)擊上傳按鈕,彈出文件對(duì)話(huà)框
三、AutoIT編寫(xiě)腳本實(shí)現(xiàn)上傳文件
webdriver無(wú)法對(duì)文件直接進(jìn)行操作,所以需要借助AutoIT來(lái)實(shí)現(xiàn)文件上傳
AutoIT下載地址:https://www.autoitscript.com/site
安裝AutoIt之后,打開(kāi)AutoIt Window Info(x64)
4、獲取文件上傳窗口的控件信息:
打開(kāi)autoit工具之后,用鼠標(biāo)將Finder Tool的圖標(biāo)拖到要識(shí)別的控件上
獲取文本框的控件信息:
獲取“打開(kāi)”按鈕的控件信息:
5、編寫(xiě)AutoIt腳本,實(shí)現(xiàn)文件上傳
1.打開(kāi)scite script editor
2.代碼:
;ControlFocus("title", "text", controlID) Edit1=Edit instance 1 ControlFocus("文件上傳", "","Edit1") ;Wait 10 seconds for the Upload window to appear WinWait("[CLASS:#32770]", "",10) ;Set the File name thext on the Edit field ControlSetText("文件上傳", "", "Edit1", "D:\test.txt") Sleep(2000) ;Click on the Open button ControlClick("文件上傳", "", "Button1");
3. 將文件保存upfile.au3
4. 使用compile script to exe將上述AutoIt腳本編譯為exe文件供python腳本調(diào)用
6、最后,使用Python腳本調(diào)用AutoIT腳本
#點(diǎn)擊上傳,打開(kāi)上傳文件窗口 driver.find_element_by_xpath('/html/body/div[1]/div[2]/div[1]/div[2]/div[2]/div[2]/a[1]/form/input').click() #使用autoit腳本自動(dòng)上傳文件 #需要導(dǎo)入python的os庫(kù)文件: import os os.system("D:/upfile.exe")
完整代碼如下:
import os from selenium import webdriver import time class Connect(): def __init__(self,UserName,PassWord,URL): self.UserName = UserName self.PassWord = PassWord self.URL = URL def connect(self): self.driver = webdriver.Firefox() self.driver.get(self.URL) self.driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[6]/div[2]/a').click() self.driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[3]/form/p[5]/input').send_keys(self.UserName) self.driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[3]/form/p[6]/input').send_keys(self.PassWord) self.driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[3]/form/p[9]/input').click() #設(shè)置思考時(shí)間 time.sleep(30) sreach_window = self.driver.current_window_handle # 此行代碼用來(lái)定位當(dāng)前頁(yè)面 self.driver.find_element_by_xpath('//*[@id="h5Input0"]').click() os.system(r"C:\Users\zg\Desktop\upfile.exe") Connect(UserName,PassWord,URL).upload()
以上這篇Python實(shí)現(xiàn)對(duì)百度云的文件上傳(實(shí)例講解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Python中的FTP通信模塊ftplib的用法整理
- Python+django實(shí)現(xiàn)文件上傳
- python+django快速實(shí)現(xiàn)文件上傳
- Python中selenium實(shí)現(xiàn)文件上傳所有方法整理總結(jié)
- python+selenium+autoit實(shí)現(xiàn)文件上傳功能
- python實(shí)現(xiàn)支持目錄FTP上傳下載文件的方法
- python實(shí)現(xiàn)的簡(jiǎn)單FTP上傳下載文件實(shí)例
- python實(shí)現(xiàn)從ftp服務(wù)器下載文件的方法
- python連接遠(yuǎn)程ftp服務(wù)器并列出目錄下文件的方法
- Python基于FTP模塊實(shí)現(xiàn)ftp文件上傳操作示例
相關(guān)文章
Python Pygame實(shí)戰(zhàn)之實(shí)現(xiàn)經(jīng)營(yíng)類(lèi)游戲夢(mèng)想小鎮(zhèn)代碼版
作為一名模擬經(jīng)營(yíng)類(lèi)游戲的發(fā)燒友,各種農(nóng)場(chǎng)類(lèi)、醫(yī)院類(lèi)、鐵路類(lèi)的游戲玩兒了很多年。今天用代碼給大家打造一款夢(mèng)想小鎮(zhèn)游戲,希望大家喜歡啦2022-12-12python 百度aip實(shí)現(xiàn)文字識(shí)別的實(shí)現(xiàn)示例
百度aip將圖片或掃描件中的文字識(shí)別成可編輯的文本,本文主要介紹了python 百度aip實(shí)現(xiàn)文字識(shí)別,具有一定的參考價(jià)值,感興趣的可以了解一下2021-08-08用Python實(shí)現(xiàn)web端用戶(hù)登錄和注冊(cè)功能的教程
這篇文章主要介紹了用Python實(shí)現(xiàn)web端用戶(hù)登錄和注冊(cè)功能的教程,需要的朋友可以參考下2015-04-04對(duì)python中不同模塊(函數(shù)、類(lèi)、變量)的調(diào)用詳解
今天小編就為大家分享一篇對(duì)python中不同模塊(函數(shù)、類(lèi)、變量)的調(diào)用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07Python獲取命令實(shí)時(shí)輸出-原樣彩色輸出并返回輸出結(jié)果的示例
今天小編就為大家分享一篇Python獲取命令實(shí)時(shí)輸出-原樣彩色輸出并返回輸出結(jié)果的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07Python爬蟲(chóng)Xpath定位數(shù)據(jù)的兩種方法
這篇文章主要介紹了Python爬蟲(chóng)Xpath定位數(shù)據(jù)的方法,第一種方法直接右鍵,將文章路徑復(fù)制下來(lái)點(diǎn)擊Copy?full?Xpath,方法二使用@制定標(biāo)簽屬性,搜索指定位置,每種方法給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07Python代碼執(zhí)行時(shí)間測(cè)量模塊timeit用法解析
這篇文章主要介紹了Python代碼執(zhí)行時(shí)間測(cè)量模塊timeit用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07Python使用re模塊實(shí)現(xiàn)正則表達(dá)式操作指南
在Python中需要通過(guò)正則表達(dá)式對(duì)字符串進(jìn)?匹配的時(shí)候,可以使??個(gè)python自帶的模塊,名字為re,下面這篇文章主要給大家介紹了關(guān)于Python使用re模塊實(shí)現(xiàn)正則表達(dá)式操作的相關(guān)資料,需要的朋友可以參考下2022-07-07