换披萨python_不限量蒜香披萨,Python和Selenium能帮我获得

原标题:不限量蒜香披萨,Python和Selenium能帮我获得

全文共2297字,预计学习时长6分钟

图源:unsplash

我喜欢吃披萨,特别是 棒约翰的蒜香披萨棒,它简直太美味了。恰好就在我吃完了披萨的外卖后,我收到了棒约翰发来的邮件,一瞬间我欣喜若狂!

免费的披萨!我一定要完成这个调查……

图源:棒约翰的问卷邮件内附图

调查

我以普通受访者的视角完成了调查,然后得到了一份免费蒜香披萨的兑换码。

故事到这里本来应该结束了。但出于好奇,我又看了下原始邮件链接。该链接地址中的GUID参数似乎是一个客户标识符。如果我把它随机变个花样会发生什么?出现了一个全新的调查问卷,等待着更多人完成,然后送给他们免费的披萨棒。

我可以一直这样做!然而,这似乎不是一个利用时间的高效方式——让我们使用一些Selenium魔法。

棒约翰的反馈调查

机器人程序

Selenium Webdriver是一个浏览器自动化框架,主要用于测试。我选择Python作为我的编程语言,并使用Selenium来制作调查机器人。

设置

我运行了pip install selenium和pip install fake_useragent来开始操作。

为了避免可能存在的任何过滤/阻塞机制,随机化这个请求头是个不错的方式——这就是fake_useragent的功能所在。我还需要下载ChromeDriver,以便与Chrome浏览器实现交互。

代码

基本的Selenium设置如下(使用随机的用户代理进行初始化):

from fake_useragent importUserAgent from selenium import webdriver from random import randrange import time ua =UserAgent(verify_ssl=False) user_agent = ua.random print("USERAGENT: "+ user_agent) chrome_options = webdriver.ChromeOptions chrome_options.add_argument("user-agent="+ user_agent) driver = webdriver.Chrome(chrome_options=chrome_options)

在随机化GUID参数之后,机器人程序打开网页并开始进行单击操作。我在每个操作之间增加了一秒钟的延迟,以为页面加载留出时间,同时也能模仿随机受访者的状态。

id =randrange(100000000000000) url ="https://www.papajohnsfeedback.com/GBR?GUID="+str(id) print(url) driver.get(url) time.sleep(1) driver.find_element_by_id('NextButton').click time.sleep(1) driver.find_element_by_id('NextButton').click time.sleep(1) driver.find_element_by_xpath("//div[contains(@class,'Opt1')]/span").click time.sleep(1)

机器人程序代码脚本节选

XPath

XPath是一种用于从HTML或XML文档中选择节点的查询语言。对于每个调查问题,我使用实时XPath测试工具来选择机器人程序要单击的正确节点。当然,我给棒约翰的每样产品都打了五星。

XPath 测试

最终,我们有了披萨兑换码!不用谢!

棒约翰反馈调查

driver.find_element_by_id('NextButton').click time.sleep(1) code = driver.find_element_by_class_name('ValCode').get_attribute("innerHTML").split(' ')[2]

提取验证码

在半个小时的编程后,我完成了Python机器人。

我在棒约翰的结算处输入了每一个生成的代码,于是你就有了无限的蒜香披萨棒供应。

我得到了免费的蒜香面包,棒约翰的市场部也得到了好评。在这个过程中,我也学会了XPath,并磨炼了自己的Selenium技能。

棒约翰收银台

当然,我没有这么做。我把这个漏洞和概念验证视频一起发给了棒约翰,截至我写这篇文章时,他们还没有回复我。然而,这个调查链接已经失效了,我想他们已经收到我的消息了。

留言点赞关注

我们一起分享AI学习与发展的干货

如转载,请后台留言,遵守转载规范返回搜狐,查看更多

责任编辑:

你可能感兴趣的:(换披萨python)