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

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

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

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

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

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

1

pip install 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%无套路免费领取】

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值