Python实现对百度云的文件上传(实例讲解)


Posted in Python onOctober 21, 2017

环境准备

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。

Python实现对百度云的文件上传(实例讲解)

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

Python实现对百度云的文件上传(实例讲解)

效果图如下:

Python实现对百度云的文件上传(实例讲解)

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

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

Python实现对百度云的文件上传(实例讲解)

代码:

#选择账号密码登录
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、登录成功后,点击文件上传,弹出文件对话框

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

代码:

#上传
driver.find_element_by_xpath('//*[@id="h5Input0"]').click()

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

Python实现对百度云的文件上传(实例讲解)

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

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

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

安装AutoIt之后,打开AutoIt Window Info(x64)
Python实现对百度云的文件上传(实例讲解)
Python实现对百度云的文件上传(实例讲解)

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

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

获取文本框的控件信息:
Python实现对百度云的文件上传(实例讲解)

获取“打开”按钮的控件信息:
Python实现对百度云的文件上传(实例讲解)

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

1.打开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

Python实现对百度云的文件上传(实例讲解)
4. 使用compile script to exe将上述AutoIt脚本编译为exe文件供python脚本调用
Python实现对百度云的文件上传(实例讲解)

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

#点击上传,打开上传文件窗口
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脚本自动上传文件
#需要导入python的os库文件: 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()
  #设置思考时间
  time.sleep(30)
  sreach_window = self.driver.current_window_handle # 此行代码用来定位当前页面
  self.driver.find_element_by_xpath('//*[@id="h5Input0"]').click()
  os.system(r"C:\Users\zg\Desktop\upfile.exe")
Connect(UserName,PassWord,URL).upload()

以上这篇Python实现对百度云的文件上传(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python操作sqlite的CRUD实例分析
May 08 Python
python多线程方式执行多个bat代码
Jun 07 Python
Python中Django 后台自定义表单控件
Mar 28 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
May 02 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
Jan 23 Python
Python3.5 Pandas模块之Series用法实例分析
Apr 23 Python
Pytorch 的损失函数Loss function使用详解
Jan 02 Python
django模型动态修改参数,增加 filter 字段的方式
Mar 16 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
Jun 24 Python
python安装cx_Oracle和wxPython的方法
Sep 14 Python
python通过函数名调用函数的几种场景
Sep 23 Python
单身狗福利?Python爬取某婚恋网征婚数据
Jun 03 Python
Python3操作SQL Server数据库(实例讲解)
Oct 21 #Python
Python3实现简单可学习的手写体识别(实例讲解)
Oct 21 #Python
python虚拟环境virtualenv的使用教程
Oct 20 #Python
Python环境搭建之OpenCV的步骤方法
Oct 20 #Python
详解如何用OpenCV + Python 实现人脸识别
Oct 20 #Python
python中的计时器timeit的使用方法
Oct 20 #Python
浅谈Python peewee 使用经验
Oct 20 #Python
You might like
上传多个文件的PHP脚本
2006/11/26 PHP
php常用的安全过滤函数集锦
2014/10/09 PHP
浅谈php中curl、fsockopen的应用
2016/12/10 PHP
彪哥1.1(智能表格)提供下载
2006/09/07 Javascript
jquery 扑捉回车键事件代码
2014/04/24 Javascript
使用AOP改善javascript代码
2015/05/01 Javascript
jquery制作属于自己的select自定义样式
2015/11/23 Javascript
Javascript随机标签云代码实例
2016/06/21 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
2016/10/15 Javascript
使用微信小程序开发前端【快速入门】
2016/12/05 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
javascript实现动态显示颜色块的报表效果
2017/04/10 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
BootstrapValidator验证用户名已存在(ajax)
2019/11/08 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
JQuery实现折叠式菜单的详细代码
2020/06/03 jQuery
[01:06]DOTA2小知识课堂 Ep.02 吹风竟可解梦境缠绕
2019/12/05 DOTA
读写json中文ASCII乱码问题的解决方法
2016/11/05 Python
TensorFlow高效读取数据的方法示例
2018/02/06 Python
Python爬虫将爬取的图片写入world文档的方法
2018/11/07 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
关于Python形参打包与解包小技巧分享
2019/08/24 Python
Python 中pandas索引切片读取数据缺失数据处理问题
2019/10/09 Python
Python使用贪婪算法解决问题
2019/10/22 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
2019/10/30 Python
使用keras时input_shape的维度表示问题说明
2020/06/29 Python
python 实现图片裁剪小工具
2021/02/02 Python
安全技术说明书
2014/05/09 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
党员弘扬焦裕禄精神思想汇报
2014/09/10 职场文书
认错检讨书
2014/10/02 职场文书
2015年乡镇安全生产工作总结
2015/05/19 职场文书
2017大学生寒假社会实践心得体会
2016/01/14 职场文书
汉语拼音教学反思
2016/02/22 职场文书
JS如何使用剪贴板操作Clipboard API
2021/05/17 Javascript
mysql sock文件存储了什么信息
2022/07/15 MySQL