去壹人事APP浏览
加入HR交流社群,
50万HR人在这里

把双手从解放出来,Python自动填表

来源:壹人事 阅读量:85 时间:2023-05-12

需要做的准备

python3.6+selenium库+xlrd库+xlwt库

其中xlrd和xlwt库用于读写excel表中的数据。

还要下载一个浏览器的driver文件用于打开浏览器,注意要选择与计算机系统相符合的版本(max/windows64位/windows32位)

将下载下来的driver.exe放到浏览器根目录和python的根目录

〇、Python下载

(默认你使用Windows操作系统)点击两次鼠标

一、环境配置

  python3.6+selenium库+xlrd库+xlwt库

  其中xlrd和xlwt库用于读写excel表中的数据。

  还要下载一个浏览器的driver文件用于打开浏览器,注意要选择与计算机系统相符合的版本(max/windows64位/windows32位)

  ChromeDriver:http://npm.taobao.org/mirrors/chromedriver/

  IEDriver:selenium-release.storage.googleapis.com

  将下载下来的driver.exe放到浏览器根目录和python的根目录

二、打开网页

IE浏览器

driver=webdriver.Ie() driver.get("http://xxxx.com/")

如果网站需要登陆(需要填表的一般是公司内部网站),再写一个login函数,将driver作为参数调用

driver = login(driver)

注意一定要将driver传回,这样driver才能继续接受程序的指令

三、元素定位

webdriver的工作原理是找到网页中某一个元素,可以对其进行填入数据或点击等操作。

我主要用到的元素定位方式有

driver.find_element_by_id("someid")#通过元素的id定位

driver.find_element_by_css_selector("input[value="确定"")#查找一个input元素,它的value属性值为"确定"

driver.find_element_by_xpath("//span[contains(@style,"COLOR: red")]/span[1]")#查找一个style属性值为"COLOR:red"的span元素的第一个span子元素

四、不确定情况处理

五、frame处理

总结起来就是:frameset不用切,frame层层切。最好一系列填表操作完后都用 driver.switch_to.default_content() 回到原文档,这样不容易混乱

这里再补充一点frame没有id时的切入方法

frame= self.driver.find_element_by_xpath("/html/body/div[12]/iframe")#先定位frame位置,用一个变量储存这个节点

self.driver.switch_to_frame(frame)#再切入这个节点

六、excel数据读写

excel数据读写十分简单,看代码就好了:

defread(file):
data= xlrd.open_workbook(file)#打开excel文件
table = data.sheets()[0]#读取第一个sheet的数据
phones = table.col_values(0)#以列表形式存储第一列数据
peoples = table.col_values(1)#以列表形式存储第二列数据
returnphones,peoplesdefwrite(result):
file=xlwt.Workbook()#创建一个excel文件
table = file.add_sheet("sheet1")#添加一个sheet
for i in range(len(result)):#写入数据
table.write(i,0,result[i][0])
table.write(i,1,result[i][1])
table.write(i,2,result[i][2])
file.save("result.xls")

用python-webdriver实现自动填表_python学习者的博客-CSDN博客

壹人事目前可提供全国中小微企业社保代缴社保账户托管电子工资条薪资代发节日福利员工花名册等一站式人力资源服务。咨询壹人事“在线客服”或致电400-189-1900了解更多,也可以点击立即注册,体验壹人事的各项产品。

产品与服务 更多 >
热门总榜

热门总榜

换一换
关闭