您的位置:首页 > 编程语言 > Python开发

python从excel中读取数据并填写网页表格

2020-04-20 13:03 1046 查看

话不多说,先直接上代码

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

import openpyxl
wb = openpyxl.load_workbook('文件路径')
sh = wb['Sheet1']//工作簿名称

driver = webdriver.Chrome()

driver.implicitly_wait(2)  # 设置隐式等待时间

driver.get("")  # 地址栏里输入网址

#自动登入的功能
driver.find_element_by_id('number').send_keys('账号')
driver.find_element_by_id('password').send_keys('密码')
driver.find_element_by_id('id').click()#点击登入按钮

#将excel所有数据读入到data中
data=[]
for row in list(sh.rows)[1:]:
for cell in row:
if(cell.value):
data.append(cell.value)

input("确定")

print(driver.find_elements_by_tag_name("iframe"))
driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0])
#有些表格可能在iframe中,需要跳转进入

i=0
while(1):
driver.find_element_by_id('id').send_keys(data[i])
#普通的表框,直接通过id找到框,输入值即可

driver.find_element_by_id('id').send_keys(data[i+1])
time.sleep(1)
driver.find_element_by_id('id').send_keys(Keys.ENTER)
#有些表框需要选择,我的方法是,等待表格弹出后输入回车
input("确认")
i+=2

driver.quit()

1.selenium的使用

selenium需要先下载一个适配自身版本的驱动,这个其他博客也有讲,可以照着他们的步骤来即可,我自己发现的一个坑是,要想程序正常运行,还得将代码放在chrome application的目录,即跟驱动同级才能正常使用.

2.openpyxl的使用

这个网上教程很多,可以根据自己的实际需求来读取数据填写.虽然我不太会用,但是看那些python培训的广告经常会说python办公,我就猜到应该处理很方便,结果确实挺方便的…网上找点代码拼凑一下就好.

3.网页id读取

想知道对应表框的id或者其他属性,用浏览器打开,进入开发者模式,然后寻找即可目标部件.

个人不太清楚如何用代码处理程序找不到目标部件的问题,就是,让程序自动运行,不管我的页面打开到哪都不会报错.我目前的解决方式是通过input卡住程序,直到我打开需要填表的页面,再给程序输入,让程序继续运行.否则程序找不到对应的部件就会报错退出了

这个代码很多我不少也是从网上搬砖,东拼西凑出来的代码,希望前辈们莫怪.

  • 点赞
  • 收藏
  • 分享
  • 文章举报
乌鸦不像写字台 发布了7 篇原创文章 · 获赞 1 · 访问量 1266 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: