你是不是也厌倦了每天重复表单填写的工作?是时候让技术来帮助我们解放双手了这次我将向你展示如何使用Selenium和Python来自动填充和提交表单,让你摆脱了这种无聊的重复劳动。准备好了吗?让我们开始吧!
首选我们要了解Selenium 是一个强大的自动化测试工具,它可以让用户在浏览器中进行操作模拟。而 Python 是一种简洁而强大的编程语言,它可以让我们轻松编写自动化脚本。结合这两者,我们可以实现自动填充和提交表单的目标。
其次,我们的目标是编写一个Python脚本,使用Selenium库来自动填充和提交表单。我们希望能够通过代码示例来演示这个过程,
我来给你一个实际的案例,看看这个技术是如何发挥作用的。假设你每天都要登录一个网站,并填写一个长长的表单。这个表单要求你输入用户名、密码、电子邮件每天都要重复这个过程,简直是一种折磨!但是,别担心,我们可以用 Selenium 和 Python 来解决这个问题。
首先,我们需要安装Selenium库。你可以使用以下命令来安装它:
接下来,我们需要找到要填写和提交的表单的网页。假设这个表单的网址是https://example.com。我们可以使用Selenium的WebDriver来打开这个网页:
1 2 3 | from selenium import webdriver driver = webdriver.Chrome() driver.get( "https://example.com" ) |
现在,我们需要找到表单中的各个字段,并填写相应的值。假设用户名字段的id是“用户名”,密码字段的id是“密码”,我们可以使用以下代码来填写这些字段:
1 2 | driver.find_element_by_id( "username" ).send_keys( "your_username" ) driver.find_element_by_id( "password" ).send_keys( "your_password" ) |
最后,我们需要点击提交按钮来提交表单。假设提交按钮的id是“submit”,我们可以使用以下代码来点击它:
1 | driver.find_element_by_id( "submit" ).click() |
在填写和提交表单的过程中,可能会遇到一些威胁。例如,网站可能会有反爬虫机制,阻止我们的自动化脚本。此外,如果我们填写的表单包含敏感信息,我们需要确保我们的脚本处理这些信息时是安全的。
解决上述问题和威胁,我们可以使用代理服务器来隐藏我们的真实IP地址,让所有被网站识别为自动化脚本。我们可以使用Selenium的代理功能来实现这一点。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | from selenium import webdriver from selenium.webdriver.common.proxy import Proxy, ProxyType # 亿牛云爬虫代理参数设置 proxyHost = "u6205.5.tp.16yun.cn" proxyPort = "5445" proxyUser = "16QMSOML" proxyPass = "280651" # 创建代理对象 proxy = Proxy() proxy.proxy_type = ProxyType.MANUAL proxy.http_proxy = f "{proxyUser}:{proxyPass}@{proxyHost}:{proxyPort}" proxy.ssl_proxy = f "{proxyUser}:{proxyPass}@{proxyHost}:{proxyPort}" # 创建浏览器对象 options = webdriver.ChromeOptions() options.add_argument( "--proxy-server=http://{}" . format (proxy.proxy)) driver = webdriver.Chrome(options = options) # 打开网页并填写表单 driver.get( "https://example.com" ) driver.find_element_by_id( "username" ).send_keys( "your_username" ) driver.find_element_by_id( "password" ).send_keys( "your_password" ) driver.find_element_by_id( "submit" ).click() # 关闭浏览器 driver.quit() |
通过使用Selenium和Python,我们可以轻松地实现表单自动填充和提交的功能。这不仅可以节省我们的时间和精力,还可以提高工作效率。同时,我们还提到了如何处理可能的问题和解决方案,希望对大家在做表单的时候有所帮助。
知识补充
除了上文的方法,小编还为大家整理了python+selenium实现自动填写提交电子表单的方法,希望对大家有所帮助
实现代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | from selenium import webdriver from time import sleep ##打开chrome浏览器 driver = webdriver.Chrome() for i in range ( 1 , 10 ): print ( "开始第" + str (i) + "次填写" ) ## 打开网页 driver.get( "https://www.wenjuan.com/s/uQzQBv7/" ) sleep( 1 ) ## 通过class_name查找元素 elem_radio = driver.find_elements_by_class_name( "radio_box" ); ## 点击第一个选项,第四个选项 elem_radio[ 0 ].click() elem_radio[ 3 ].click() ## 通过class_name查找元素 elem_check = driver.find_elements_by_class_name( "check_box" ); ## 选中第1、2、4选项 elem_check[ 0 ].click() elem_check[ 1 ].click() elem_check[ 3 ].click() ## 查找下拉框按钮点击,点击第二个元素“应该不会留” elem_wrapper = driver.find_elements_by_class_name( "w-selection-wrapper" ) elem_wrapper[ 0 ].click() ## 找到所有的选择选项,点击第二个元素“应该不会留” option_cell = driver.find_elements_by_class_name( "w-selection-option" ) option_cell[ 2 ].click() ##通过id查找元素,比class更准确,id也在源码中 textarea = driver.find_element_by_id( "5def9d9d92beb5764c5b2ef4" ) ##send_keys可以发送内容和操作 textarea.send_keys( "少下雨,多下雪,晴天出点儿云彩" ) ##通过calss_name查找元素 score = driver.find_elements_by_class_name( "div_float" ); ##打两颗星 score[ 1 ].click() ##通过id查找元素,输入名字、年龄、号码 name = driver.find_element_by_id( "option_5def9dd23631f2371655e788" ) name.send_keys( "小明" ) age = driver.find_element_by_id( "option_5def9dd23631f2371655e789" ) age.send_keys( "25岁" ) link = driver.find_element_by_id( "option_5def9dd23631f2371655e78a" ) link.send_keys( "1008611" ) ##通过id查找元素 submit = driver.find_element_by_id( "next_button" ) ##点击此元素,提交表单 submit.click(); print ( "第" + str (i) + "次填写完成" ) sleep( 5 ) |
效果图
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】