Python+Selenium实现表单自动填充和提交

 更新时间:2023年09月18日 10:38:43   作者:小白学大数据  
你是不是也厌倦了每天重复表单填写的工作,是时候让技术来帮助我们解放双手了,下面小编就为大家介绍一下如何使用Selenium和Python来自动填充和提交表单

你是不是也厌倦了每天重复表单填写的工作?是时候让技术来帮助我们解放双手了这次我将向你展示如何使用Selenium和Python来自动填充和提交表单,让你摆脱了这种无聊的重复劳动。准备好了吗?让我们开始吧!

首选我们要了解Selenium 是一个强大的自动化测试工具,它可以让用户在浏览器中进行操作模拟。而 Python 是一种简洁而强大的编程语言,它可以让我们轻松编写自动化脚本。结合这两者,我们可以实现自动填充和提交表单的目标。

其次,我们的目标是编写一个Python脚本,使用Selenium库来自动填充和提交表单。我们希望能够通过代码示例来演示这个过程,

我来给你一个实际的案例,看看这个技术是如何发挥作用的。假设你每天都要登录一个网站,并填写一个长长的表单。这个表单要求你输入用户名、密码、电子邮件每天都要重复这个过程,简直是一种折磨!但是,别担心,我们可以用 Selenium 和 Python 来解决这个问题。

首先,我们需要安装Selenium库。你可以使用以下命令来安装它:

pip install selenium

接下来,我们需要找到要填写和提交的表单的网页。假设这个表单的网址是https://example.com。我们可以使用Selenium的WebDriver来打开这个网页:

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://example.com")

现在,我们需要找到表单中的各个字段,并填写相应的值。假设用户名字段的id是“用户名”,密码字段的id是“密码”,我们可以使用以下代码来填写这些字段:

driver.find_element_by_id("username").send_keys("your_username")
driver.find_element_by_id("password").send_keys("your_password")

最后,我们需要点击提交按钮来提交表单。假设提交按钮的id是“submit”,我们可以使用以下代码来点击它:

driver.find_element_by_id("submit").click()

在填写和提交表单的过程中,可能会遇到一些威胁。例如,网站可能会有反爬虫机制,阻止我们的自动化脚本。此外,如果我们填写的表单包含敏感信息,我们需要确保我们的脚本处理这些信息时是安全的。

解决上述问题和威胁,我们可以使用代理服务器来隐藏我们的真实IP地址,让所有被网站识别为自动化脚本。我们可以使用Selenium的代理功能来实现这一点。

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实现自动填写提交电子表单的方法,希望对大家有所帮助

实现代码

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)

效果图

到此这篇关于Python+Selenium实现表单自动填充和提交的文章就介绍到这了,更多相关Python Selenium内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • VSCODE配置Markdown及Markdown基础语法详解

    VSCODE配置Markdown及Markdown基础语法详解

    这篇文章主要介绍了VSCODE配置Markdown及Markdown基础语法详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • pyinstaller执行报错的问题解决

    pyinstaller执行报错的问题解决

    有时候,PyInstaller可能无法正确识别和打包所有的依赖项,导致名称错误,本文主要介绍了pyinstaller执行报错的解决方案,感兴趣的可以了解一下
    2023-11-11
  • python 爬取百度文库并下载(免费文章限定)

    python 爬取百度文库并下载(免费文章限定)

    这篇文章主要介绍了python 爬取百度文库并下载的示例,帮助大家更好的理解和学习python 爬虫的相关知识,感兴趣的朋友可以了解下
    2020-12-12
  • Python matplotlib绘制散点图的实例代码

    Python matplotlib绘制散点图的实例代码

    这篇文章主要给大家介绍了关于Python matplotlib绘制散点图的相关资料,所谓散点图就是反映两组变量每个数据点的值,并且从散点图可以看出它们之间的相关性,需要的朋友可以参考下
    2021-06-06
  • Python列表append()函数使用方法详解

    Python列表append()函数使用方法详解

    python中的append()函数是在列表末尾添加新的对象,且将添加的对象最为一个整体,下面这篇文章主要给大家介绍了关于Python列表append()函数使用方法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • python异常处理和日志处理方式

    python异常处理和日志处理方式

    今天小编就为大家分享一篇python异常处理和日志处理方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python操作配置文件实战记录

    python操作配置文件实战记录

    这篇文章主要给大家介绍了关于python操作配置文件的相关资料,配置文件是为程序配置参数和初始设置的文件,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • python找出完数的方法

    python找出完数的方法

    今天小编就为大家分享一篇python找出完数的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • matlab xlabel位置的设置方式

    matlab xlabel位置的设置方式

    这篇文章主要介绍了matlab xlabel位置的设置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python 十个字典用法使用技巧归纳

    Python 十个字典用法使用技巧归纳

    今天小编帮大家简单介绍下Python的一种数据结构: 字典,字典是一种可变容器模型,且可存储任意类型对象,它用于存放具有映射关系的数据,这里介绍归纳十个字典的用法技巧,需要的朋友可以参考下
    2022-01-01

最新评论