源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-07-16 14:48 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Python实现对百度云的文件上传(实例讲解)
[b]环境准备[/b] python3.6 PyCharm 2017.1.3 Windows环境 [b]框架搭建[/b] selenium3.6 安装方法: pip install selenium [b]实现步骤:[/b] [b]一、步骤分析[/b] 1、选择“账号密码登录” 2、用户名、密码输入,登录 3、文件上传 注:本文主要介绍利用selenium包下的webdriver加载Firefox浏览器。 [b]二、元素捕捉[/b] 利用火狐浏览器firebug插件复制控件的XPATH路径,注:Python3.6对应Firefox版本40.x,暂不支持最新版本50.x。 [img]http://files.jb51.net/file_images/article/201710/2017102110035314.jpg[/img] 1、点击“账号密码登录”,获取其源文件 [img]http://files.jb51.net/file_images/article/201710/2017102110035315.jpg[/img] 效果图如下: [img]http://files.jb51.net/file_images/article/201710/2017102110035316.png[/img] 点击右键,复制Xpath路径:/html/body/div[1]/div[3]/div[6]/div/div[6]/div[2]/a 登录按钮和文件上传同上,获取其相应的Xpath路径 [img]http://files.jb51.net/file_images/article/201710/2017102110035317.png[/img] 代码:
#选择账号密码登录
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()

点击上传按钮,弹出文件对话框 [img]http://files.jb51.net/file_images/article/201710/2017102110035318.jpg[/img] [b]三、AutoIT编写脚本实现上传文件[/b] webdriver无法对文件直接进行操作,所以需要借助AutoIT来实现文件上传 AutoIT下载地址:https://www.autoitscript.com/site 安装AutoIt之后,打开AutoIt Window Info(x64) [img]http://files.jb51.net/file_images/article/201710/20171021101226.jpg[/img] [img]http://files.jb51.net/file_images/article/201710/20171021101239.jpg[/img] 4、获取文件上传窗口的控件信息: 打开autoit工具之后,用鼠标将Finder Tool的图标拖到要识别的控件上 获取文本框的控件信息: [img]http://files.jb51.net/file_images/article/201710/20171021101412.jpg[/img] 获取“打开”按钮的控件信息: [img]http://files.jb51.net/file_images/article/201710/20171021101421.jpg[/img] 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 [img]http://files.jb51.net/file_images/article/201710/20171021101652.jpg[/img] 4. 使用compile script to exe将上述AutoIt脚本编译为exe文件供python脚本调用 [img]http://files.jb51.net/file_images/article/201710/20171021101716.jpg[/img] 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实现对百度云的文件上传(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部