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操作浏览器
golang社区>javascript url编码selenium有两点
angular前端面试想要接管浏览器,⾸先要下载相应的浏览器插件。我使⽤的是chrome
没有到接管当前浏览器的⽅法,所以使⽤另⼀种解决⽅案
使⽤⽆头模式把chrome打开(我的chrome存⼊了系统变量,如果没有存⼊系统变量,还需要到chrome的地址,在cmd中打开)
< --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查和更改内容的代码如下
python基础代码大全下载driver.find_element_by_xpath("拷贝的xpath复制到这⾥").clear()#这⼀步是根据xpath到元素并清空
driver.find_element_by_xpath("拷贝的xpath复制到这⾥").send_keys()#这⼀步是在元素中输⼊数据
到元素之前⼀定要记得清空原有元素内容,保持良好的习惯,输⼊正确的数据
利⽤xpath到元素的位置
想要在⼀个⽹页中查、输⼊数据。就需要知道表单、数据在⽹页的哪个位置,怎么到相应的地⽅。selenium提供了很多种⽅法定位元素,这⾥使⽤的是xpath
xpath查⽅法:使⽤⿏标右键点击你想查的位置,选择检查。(会⽤F12的忽视这条)
如何在jsp中显示图片的代码然后在检查器中到相应的位置,点击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表格中的内容即可。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论