当前位置: 首页 > 后端技术 > Python

Python盘纪念币系列之三:自动预约脚本编写03&系列总结

时间:2023-03-26 00:17:15 Python

上一篇文章遗漏了“预约赎回日期”的自动输入,本文将介绍如何处理。另外,对“蟒盘纪念币系列”做一个简单的总结。自动输入预订兑换日期不像是文本输入框和下拉选择框。单击此兑换日期元素后,将出现一个日期选择控件。看来确实比前两者难办。我不知道从哪里开始。其实还是一样的,我们一步一步来处理。在此之前,我发现代码中有很多重复的语句,所以我把这些语句挑出来写成独立的方法:deffind_and_click(driver,xpath):ele=driver.find_element_by_xpath(xpath)ele.click()deffind_and_fill(driver,xpath,value):ele=driver.find_element_by_xpath(xpath)ele.send_keys(value)相信读者都能知道他们的函数是什么,函数名写的很清楚。那么下一步肯定是先定位到这个文本框。定位后,执行点击操作,调出日期选择器。一句话搞定:f??ind_and_click(driver,'//*[@id="coindate"]')看上面的日期选择器,好像真的无从下手。但是仔细想想,既然能出现在网页上,那肯定是有对应的网页路径的。那么,我们看这里:也可以对每个对应的日期进行索引:比如上图中的12可以用下面的xpath进行索引://*[@id="ui-datepicker-div"]/table/tbody/tr[3]/td[4]/span熟悉html的同学应该知道,和标签是表格符号,所以这个日期选择器其实就是一个表格。可以遍历>和标签的下标找到对应的元素。如果遍历本页还没有找到,点击箭头继续下一页:是否可以选择可以直接根据上面标题中的“不在兑换期”来判断。如果是可以兑换的日期,title会显示为“optional”,如下:经过上面的分析,我们最终的代码是这样的:fortr_indexinrange(6):fortd_indexinrange(7):尝试:ele_td=driver.find_element_by_xpath('//*[@id="ui-datepicker-div"]/table/tbody/tr[{}]/td[{}]'.format(str(tr_index+1),str(td_index+1)))except:continueifele_td.get_attribute('title')=='optional':is_find=Trueele_td.click()return这样,最后一道坎就解决了,我们终于可以开心一盘纪念币了。说句题外话,这个系列说的是预定农行纪念币,其实其他银行也是一样的。我正在编写ICBC脚本,它即将完成。有需要的可以联系后台。潘纪念币系列总结说实话,没想到自己能坚持下来,把这个系列写完。虽然不是一道很难的题,但至少是一步一步,一点一点,一点一点的解释出来的。当然,文章也有很多瑕疵,有些地方可以说的比较详细但不够深入,有些地方比较相似但是又占了篇幅。但是这些,我相信是可以慢慢学习和改正的,所以我更看重这种从0到1的质变。题外话不多说,Python盘纪念币系列是使用python语言在网页上自动录入信息来储备纪念币的系列文章。本系列主要有3个技术要点。首先,使用OpenCV库对验证码图像进行处理,并对每个字符进行分割;第二,训练神经网络智能识别字符(当然,这不是识别验证码的唯一方案);第三,使用selenium库来自动化测试。在网页填写信息,实现自动预约。如果你想了解更多,可以阅读本系列文章,如下图。第一期:蟒盘纪念币系列一:简介第二期:蟒盘纪念币系列二:鉴定验证码01第三期:蟒盘纪念币系列二:鉴定验证码02第四期:蟒盘纪念币系列二:鉴定验证码03第5期:蟒盘纪念币系列2:身份验证码04第6期:蟒盘纪念币系列3:自动预约脚本编写01第7期:蟒盘纪念币系列3:自动预约脚本编写02第8期:Python盘纪念币系列之三:自动预约脚本编写03&系列总结完成本系列后,我会写微信相关的文章,比如聊聊微信群机器人,微信个人助理等文章。因为平时微信玩的比较多,所以也喜欢搞一些小动作。当然,不管你写什么,我都希望能和更多的人交流。如果您有任何问题或需求,欢迎随时交流。我所有的源码都会放在下面的github仓库,有需要的可以参考,有问题请指正,谢谢!https://github.com/TitusWongCN/以下是我的公众号,有兴趣的可以扫一扫: