python批量自动填写网页表单_使用python+selenium帮助你填写网站表单

应用场景:频繁往网站、电商平台后台等填写数据。

工作场景:电商上传商品、测试人员、批量提交表单等。

涉及内容:python读写EXCEL文件、selenium基础使用、Xpath基础使用、python基础

最近刚好工作中涉及,学习使用之后记录一下。

这里只做工具相关的使用方法,分析解释,具体的代码实现托管在GitHub上,我只是现学现用,代码中必定有考虑不足的地方,如果有朋友看到欢迎指出,本人不甚感激。

本人应用场景:在网站后台中传入商品数据,一次大概提交2-300个商品的编码、价格等信息,工作简单缺烦躁,易出错,于是想用机器解决。

思路:先将数据批量导出到excel中,按需要填入顺序排列好、使用python往excel文件中读数据、selenium接管浏览器,实现自动填入。

这些文章有些部分有些繁杂我没有详细去说,这里指出来一下

一、将数据按照一定格式填入excel中方便读写(此步不在赘述)

按照一定格式的原因是python便于读写

二、python读取excel文件

python操作excel的库有很多,我这里用的是xlrd。

我使用python将数据按照规定的格式读出,存入到python字典里。

使用selenium操作浏览器

selenium有两点

想要接管浏览器,首先要下载相应的浏览器插件。我使用的是chrome

没有找到接管当前浏览器的方法,所以使用另一种解决方案

使用无头模式把chrome打开(我的chrome存入了系统变量,如果没有存入系统变量,还需要找到chrome的地址,在cmd中打开)

chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\AutomationProfile"

以上代码打开浏览器后,

chrome_options = Options()#建立浏览器对象

chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")#输入浏览器参数

driver = webdriver.Chrome(options=chrome_options)#使用selenium接管浏览器

#输入这三行代码

然后浏览器对象就存入了driver中,可以使用selenium进行操作了

selenium查找和更改内容的代码如下

driver.find_element_by_xpath("拷贝的xpath复制到这里").clear()#这一步是根据xpath找到元素并清空

driver.find_element_by_xpath("拷贝的xpath复制到这里").send_keys()#这一步是在元素中输入数据

找到元素之前一定要记得清空原有元素内容,保持良好的习惯,输入正确的数据

利用xpath找到元素的位置

想要在一个网页中查找、输入数据。就需要知道表单、数据在网页的哪个位置,怎么找到相应的地方。selenium提供了很多种方法定位元素,这里使用的是xpath

xpath查找方法:使用鼠标右键点击你想查找的位置,选择检查。(会用F12的忽视这条)

然后在检查器中找到相应的位置,点击copy xpath即可。我做了一张动图演示给你们,如下

总体工作流程

关键步骤说清楚了,下面就是整体的思路了。

利用python把excel数据读出以后,用selenium找到相应元素的位置,然后把对应位置中的值清空,在填入新值就可以了。

比如现在你的网页中有1000个编码需要从上到下填入,你找到xpath的规律,一般都是有相应的数字规律。类似下面这种

/html/body/div[4]/form/div/div/div/div[3]/table[2]/tbody/tr/td[2]/div/table/tbody/tr[4]/td[4]/span/

# /html/body/div[4]/form/div/div/div/div[3]/table[2]/tbody/tr/td[2]/div/table/tbody/tr[5]/td[6]/span/input

# /html/body/div[4]/form/div/div/div/div[3]/table[2]/tbody/tr/td[2]/div/table/tbody/tr[6]/td[4]/span/input

# /html/body/div[4]/form/div/div/div/div[3]/table[2]/tbody/tr/td[2]/div/table/tbody/tr[7]/td[4]/span/input

# /html/body/div[4]/form/div/div/div/div[3]/table[2]/tbody/tr/td[2]/div/table/tbody/tr[8]/td[4]/span/input

# /html/body/div[4]/form/div/div/div/div[3]/table[2]/tbody/tr/td[2]/div/table/tbody/tr[9]/td[6]/span/input

可以看到明显第6、7的数字位置存在规律变化,找到相应的变化,写入python for循环中即可。批量提交中,网页结构是不会再变化的,所以脚本写好之后,再传入数据只需要更改excel表格中的内容即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值