4.9 Selenium 库趣味案例:网页自动投票

  • 本章最后来演示一个网页自动投票的案例,带领大家体验Selenium库在爬虫领域之外的应用。这里笔者构建一个本地的HTML网页(见本书配套代码文件中的vote.html),在浏览器中打开效果如下图所示。
    在这里插入图片描述
  • 其投票逻辑非常简单,选中想要投票的部门,单击“确认投票”按钮,如下图所示。
    在这里插入图片描述
  • 随后会弹出一个提示框,单击“确定”按钮即可关闭提示框,如下图所示。
    在这里插入图片描述
  • 实现自动投票的思路也很简单:用Selenium库访问网页,再依次模拟单击响应的按钮。先用Selenium库访问网页,代码如下:
from selenium import webdriver
import time
browser = webdriver.Chrome()
browser.get(r'D:\works\python_crawl1\第4章 Selenium 库深度讲解\vote.html')
  • 需要注意的是,第4行代码中的网址必须是HTML文件的绝对路径,虽然Python可以识别相对路径下的HTML文件。
  • 访问网页后,用开发者工具获取选项按钮和“确认投票”按钮的XPath表达式,然后在代码中用Selenium库的find_element_by_xpath()函数定位相关元素,再用click()函数模拟单击。而投票后弹出的提示框需要用switch_to.alert.accept()来处理。这里以第一个选项“综合管理部”为例来演示投票,代码如下:
from selenium import webdriver
import time
browser = webdriver.Chrome()
browser.get(r'D:\works\python_crawl1\第4章 Selenium 库深度讲解\vote.html')

for i in range(10):#循环10次,表示投票10次
    browser.find_element_by_xpath('//*[@id="main"]/tbody/tr[17]/td').click() #模拟单击某选项
    browser.find_element_by_xpath('//*[@id="main"]/tbody/tr[19]/td/input').click()#模拟单击“确认投票”按钮
    browser.switch_to.alert.accept() #切换到提示框,并模拟单击“确定”按钮
    time.sleep(1)
  • 最终自动投票结果如下图所示,成功地给“综合管理部”投了10票。

在这里插入图片描述

  • 实战中的网页投票当然不会如此简单,而是会采取一些防止作弊的措施,如投票前需要进行手机号码或微信验证,或者限制相同IP地址投票的次数(可以参考第8章的内容来应对)。不过,本案例演示的方法还是可以应用于自动填写自动化办公网页中的一些无须验证的表单。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值