把环境搭建完成之后就可以上传文件到自己的百度网盘中。环境搭建移步:


环境准备


python3.6


firefox(最好是最新版,不然不会报错)


Windows 7


框架搭建


selenium3.6


安装方法:


pip install selenium


实现步骤:


一、步骤分析


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


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


3、文件上传


注:本文主要介绍利用selenium包下的webdriver加载Firefox浏览器。通过加载一个浏览器变量来实现自动上传


利用火狐浏览器firebug插件复制控件的XPATH路径,选用xpath比较准确且速度较快。还有别的通过名称、类ID以及元素等等方法都是可以获取网页页面中的控件。


获取账号密码登录信息:




网盘开源python python开发网盘_网盘开源python



获取用户名、密码控件xpath信息:


网盘开源python python开发网盘_Python_02



获取登录成功后上传文件按钮控件路径:


网盘开源python python开发网盘_Python_03



综合以上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[2]').send_keys(用户名) #账号 
  
   

    driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[3]/form/p[6]/input[2]').send_keys(密码) # 密码 
  
   

    driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[3]/form/p[9]/input').click() #设置思考时间 #登录 
  
   

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



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


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


代码:


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


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


网盘开源python python开发网盘_Python_04




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


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


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


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


网盘开源python python开发网盘_网盘开源python_05



从上到下依次为:打开嗅探工具 编译au3到exe au3编辑器


网盘开源python python开发网盘_网盘开源python_06

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


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


获取文本框的控件信息:



开始嗅探文件名


网盘开源python python开发网盘_selenium_07



嗅探打开按钮


网盘开源python python开发网盘_网盘开源python_08

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


1.打开scite script editor


代码如下:


# coding=utf-8 
   
    

     import time 
   
    

     from selenium import webdriver 
   
    

     driver = webdriver.Firefox() #打开火狐浏览器 
   
    

     driver.get('http://www.baidu.com') #打开百度界面 
   
    

     driver.find_element_by_id('kw').send_keys('China') #在搜索框内输入想要搜索内容 
   
    

     time.sleep(2) # 浏览器加载需要时间 
   
    

     driver.find_element_by_id('su').click() #搜索完成

网盘开源python python开发网盘_xpath_09




这块的代码编写完成后,先测试下。


tools---》Go 运行无误后,然后把au3文件转换成exe。


4. 使用compile script to exe将上述AutoIt脚本编译为exe文件供python脚本调用


网盘开源python python开发网盘_selenium_10



点击ok即可。


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



完整代码如下:


import os 
   
    

     from selenium import webdriver 
   
    

     import time 
   
    

     #class Connect(): 
   
    
     
    

     UserName = '' 
   
    

     PassWord = '' 
   
    

     URL = 'https://pan.baidu.com/' 
   
    

     driver = webdriver.Firefox() 
   
    

     driver.get(URL) 
   
    

     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[2]').send_keys(UserName ) 
   
    

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

     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 = driver.current_window_handle #此行代码用来定位当前页面 
   
    

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

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



我的运行结果如下:


网盘开源python python开发网盘_firefox_11



这三个文件是我自动上传上去的。