python上传百度云_Python实现对百度云的文件上传

本文介绍了如何使用Python的selenium库配合Firefox浏览器登录百度云,并通过AutoIT实现文件上传。首先,安装selenium并配置Firefox环境,然后通过XPATH定位到登录和上传按钮,登录后调用AutoIT脚本完成文件选择和上传操作。
摘要由CSDN通过智能技术生成

环境准备

python3.6

PyCharm 2017.1.3

Windows环境

框架搭建

selenium3.6

安装方法:

pip install selenium

实现步骤:

一、步骤分析

1、选择“账号密码登录”

2、用户名、密码输入,登录

3、文件上传

注:本文主要介绍利用selenium包下的webdriver加载Firefox浏览器。

二、元素捕捉

利用火狐浏览器firebug插件复制控件的XPATH路径, 注:Python3.6对应Firefox版本40.x,暂不支持最新版本50.x。

1、点击“账号密码登录”,获取其源文件

效果图如下:

点击右键,复制 Xpath 路径:/html/body/div[1]/div[3]/div[6]/div/div[6]/div[2]/a

登录按钮和文件上传同上,获取其相应的Xpath路径

代码:

1 #选择账号密码登录

2 driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[6]/div[2]/a').click()

3 # 登录

4 driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[3]/form/p[5]/input').send_keys('username')

5 driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[3]/form/p[6]/input').send_keys('password')

6 driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[3]/form/p[9]/input').click()

2、登录成功后,点击文件上传,弹出文件对话框

“上传”的Xpath路径为://*[@id='h5Input0']

代码:

1 #上传

2 driver.find_element_by_xpath('//*[@id='h5Input0']').click()

点击上传按钮,弹出文件对话框

三、AutoIT编写脚本实现上传文件

webdriver无法对文件直接进行操作,所以需要借助AutoIT来实现文件上传

AutoIT下载地址:https://www.autoitscript.com/site

安装AutoIt之后,打开AutoIt Window Info(x64)

4、获取文件上传窗口的控件信息:

打开autoit工具之后,用鼠标将Finder Tool的图标拖到要识别的控件上

获取文本框的控件信息:

获取“打开”按钮的控件信息:

5、编写AutoIt脚本,实现文件上传

打开scite script editor

代码:

;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脚本调用

6、最后,使用Python脚本调用AutoIT脚本

1 #点击上传,打开上传文件窗口

2 driver.find_element_by_xpath('/html/body/div[1]/div[2]/div[1]/div[2]/div[2]/div[2]/a[1]/form/input').click()

3

4 #使用autoit脚本自动上传文件

5 #需要导入python的os库文件: import os

6 os.system('D:/upfile.exe')

完整代码如下:

1 import os

2 from selenium import webdriver

3 import time

4 class Connect():

5 def __init__(self,UserName,PassWord,URL):

6 self.UserName = UserName

7 self.PassWord = PassWord

8 self.URL = URL

9 def connect(self):

10 self.driver = webdriver.Firefox()

11 self.driver.get(self.URL)

12 self.driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[6]/div[2]/a').click()

13 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)

14 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)

15 self.driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[3]/form/p[9]/input').click()

16 #设置思考时间

17 time.sleep(30)

18 sreach_window = self.driver.current_window_handle # 此行代码用来定位当前页面

19 self.driver.find_element_by_xpath('//*[@id='h5Input0']').click()

20 os.system(r'C:\Users\zg\Desktop\upfile.exe')

21 Connect(UserName,PassWord,URL).upload()

View Code

本文参考文章:http://blog.csdn.net/justheretobe/article/details/50939021

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值