python 写脚本 预约课程_Python盘纪念币系列之三:自动预约脚本编写 03 系列总结...
前一篇遺漏了“預(yù)約兌換日期”的自動(dòng)輸入,這篇文章將介紹如何處理。另外,將會(huì)對(duì)“Python盤紀(jì)念幣系列”做一個(gè)簡(jiǎn)單的總結(jié)。
自動(dòng)輸入預(yù)約兌換日期
不像文本輸入框和下拉選擇框,這個(gè)兌換日期元素點(diǎn)擊之后會(huì)出現(xiàn)一個(gè)日期選擇控件,看起來(lái)確實(shí)比前兩者難以處理,不知道從何下手。
其實(shí)還是一樣的,我們一步一步來(lái)處理。
在這之前,發(fā)現(xiàn)代碼中有大量的重復(fù)語(yǔ)句,于是將這些語(yǔ)句挑出來(lái)寫成獨(dú)立的方法:
def find_and_click(driver, xpath):
ele = driver.find_element_by_xpath(xpath)
ele.click()
def find_and_fill(driver, xpath, value):
ele = driver.find_element_by_xpath(xpath)
ele.send_keys(value)
他們的作用是什么相信讀者一看就能知道,函數(shù)名寫的很清楚。
那接下來(lái)肯定還是要先定位到這個(gè)文本框,定位到之后,執(zhí)行點(diǎn)擊操作,呼出日期選擇器。一句話搞定:
find_and_click(driver, '//*[@id="coindate"]')
看著上面那個(gè)日期選擇器,似乎真的無(wú)從下手。但仔細(xì)想想,既然它能在網(wǎng)頁(yè)中出現(xiàn),那它肯定是有對(duì)應(yīng)的網(wǎng)頁(yè)路徑的。所以,這里來(lái)查看一下:
對(duì)應(yīng)的每一個(gè)日期也都是可以索引到的:
例如,上圖中的12就可以用下面的xpath索引到:
//*[@id="ui-datepicker-div"]/table/tbody/tr[3]/td[4]/span
熟悉html的同學(xué)應(yīng)該知道,
和標(biāo)簽是表格符號(hào),所以這個(gè)日期選擇器其實(shí)就是一個(gè)表格,通過(guò)對(duì)和標(biāo)簽的下標(biāo)進(jìn)行遍歷即可找到對(duì)應(yīng)的元素。如果本頁(yè)遍歷結(jié)束都還沒(méi)有找到,則點(diǎn)擊箭頭到下一頁(yè)繼續(xù):而且是否可以選擇可以直接根據(jù)上面title中的“不在兌換期”判斷。
如果是可以兌換的日期,title則顯示為“可選擇”,如下:
經(jīng)過(guò)上述分析,最后我們的代碼大概是這樣的:
for tr_index in range(6):
for td_index in range(7):
try:
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:
continue
if ele_td.get_attribute('title') == '可選擇':
is_find = True
ele_td.click()
return
這樣,最后一個(gè)攔路虎也解決了,我們終于可以開開心心的盤紀(jì)念幣了。
說(shuō)一句題外話,這個(gè)系列講的是預(yù)約農(nóng)行的紀(jì)念幣,但其實(shí)其他銀行也是同樣的道理。我正在做工行的腳本,目前也快要完工,有需要可以公眾號(hào)后臺(tái)聯(lián)系。
盤紀(jì)念幣系列總結(jié)
說(shuō)實(shí)話,我一開始也沒(méi)想到我能堅(jiān)持下來(lái)寫完這一個(gè)系列。雖然不是什么很難的問(wèn)題,但好歹是一步一步、一片一片、一點(diǎn)一點(diǎn)的講完了。當(dāng)然,文章有不少的缺陷,有的地方可以講的細(xì)一些卻沒(méi)有精講,有些地方比較類似卻花了大量篇幅。但這些,我相信都是可以慢慢學(xué)習(xí)慢慢更正的,所以我更看重這個(gè)從0到1的質(zhì)變。
題外話不多說(shuō),Python盤紀(jì)念幣系列是一個(gè)利用python語(yǔ)言自動(dòng)在網(wǎng)頁(yè)上輸入信息進(jìn)行紀(jì)念幣預(yù)約的系列文章。
這個(gè)系列的主要技術(shù)點(diǎn)有三個(gè)。
第一,利用OpenCV庫(kù)處理驗(yàn)證碼圖片,分割出每一個(gè)字符;
第二,訓(xùn)練神經(jīng)網(wǎng)絡(luò)智能識(shí)別字符(當(dāng)然這并不是唯一的識(shí)別驗(yàn)證碼的方案);
第三,利用selenium庫(kù)自動(dòng)化測(cè)試,將信息填入網(wǎng)頁(yè)中實(shí)現(xiàn)自動(dòng)預(yù)約。
想要詳細(xì)了解可以翻翻這個(gè)系列的文章,如下所示。
寫完這個(gè)系列,接下來(lái)會(huì)寫一寫跟微信有關(guān)系的文章,比如說(shuō)微信群機(jī)器人、微信個(gè)人輔助之類的文章。因?yàn)槠綍r(shí)玩微信比較多,也喜歡搞一些小trick。
當(dāng)然了,不管寫什么,希望能跟更多人溝通,有問(wèn)題或者需求隨時(shí)歡迎交流。
我所有的源代碼都會(huì)放在下面的github倉(cāng)庫(kù)里面,有需要可以參考,有問(wèn)題歡迎指正,謝謝!
https://github.com/TitusWongCN/
下面是我的公眾號(hào),有興趣可以掃一下:
總結(jié)
以上是生活随笔為你收集整理的python 写脚本 预约课程_Python盘纪念币系列之三:自动预约脚本编写 03 系列总结...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 豆腐沙拉怎么做好吃呢?
- 下一篇: python统计字母空格个数_pytho