日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python解決12306登錄驗證碼的實現

瀏覽:46日期:2022-06-22 09:33:42

在家無聊,線代和高數看不懂,整點事情干,就準備預定回學校的高鐵票,于是就有了這個文章

準備工作

1.pip安裝chromediver,當然也可以手動解壓(網上的教程好像沒有提到pip,手動安裝到C盤pycharm里面的Scripts就行了)chromedriver.storage.googleapis.com/index.html這是chromedriver文件官網,在chrome里面設置查看自己的版本,然后找對應的版本就完了

2.注冊個超級鷹,http://www.chaojiying.com/contact.html,挺厲害的打碼平臺,微信公眾號綁定一下賬號給1000積分,足夠干12306驗證碼了

開始實戰講解

1.選擇chrome打開12306然后切換到賬號登錄

默認是掃碼登錄

python解決12306登錄驗證碼的實現

F12然后點擊賬號登錄

python解決12306登錄驗證碼的實現

3.復制xPath,/html/body/div[2]/div[2]/ul/li[2]/a

python解決12306登錄驗證碼的實現

代碼實現

from selenium.webdriver import Chromeweb = Chrome()web.get(’https://kyfw.12306.cn/otn/resources/login.html’)time.sleep(3)web.find_element_by_xpath(’/html/body/div[2]/div[2]/ul/li[2]/a’).click()

2.下載驗證碼(截屏也可以)然后發送給超級鷹

超級鷹官網有個官方文檔,下載然后pychram打開,其實就很簡單,然后把賬號密碼改成你自己的,

from chaojiying import Chaojiying_Client

驗證碼需要時間加載,所以要sleep(3)就夠了,

3.拿到坐標然后模擬點擊好像這個官方叫什么偏移量,挺高大上的,說白了就是建立一個坐標系,給個x,y然后點擊就完了,默認左上方是原點

for pre_location in location_list:#切割出來x,y坐標location = pre_location.split(’,’)x = int(location[0])y = int(location[1])ActionChains(web).move_to_element_with_offset(img,x,y).click().perform()

4.登錄以后有個滑動驗證現在我還沒有找到方法控制滑動速度,勻速運動,但是12306并沒有因為這個驗證失敗

ActionChains(web).drag_and_drop_by_offset(button,340,0).perform()

button是那個滑塊的Xpath,我記得好像是長度330,340肯定是夠用了,那個0就是豎y的方向上的滑動

12306靠webdriver判斷是不是爬蟲

剛開始12306圖片和滑動驗證通過以后一直說驗證失敗,百思不得其解,百度發現是因為這個

python解決12306登錄驗證碼的實現

這是正常頁面下的,也就是我改了以后的,加一個這個代碼,欺騙一下

def trick_not_chromedriver(): option = Options() option.add_argument(’--disable-blink-features=AutomationControlled’) return option

這個要調用在前面,靠后一點就不行了

全部代碼

from selenium.webdriver import Chromeimport requests,timefrom hashlib import md5from selenium.webdriver.common.action_chains import ActionChainsfrom selenium.webdriver.chrome.options import Optionsclass Chaojiying_Client(object): def __init__(self, username, password, soft_id):self.username = usernamepassword = password.encode(’utf8’)self.password = md5(password).hexdigest()self.soft_id = soft_idself.base_params = { ’user’: self.username, ’pass2’: self.password, ’softid’: self.soft_id,}self.headers = { ’Connection’: ’Keep-Alive’, ’User-Agent’: ’Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)’,} def PostPic(self, im, codetype):'''im: 圖片字節codetype: 題目類型 參考 http://www.chaojiying.com/price.html'''params = { ’codetype’: codetype,}params.update(self.base_params)files = {’userfile’: (’ccc.jpg’, im)}r = requests.post(’http://upload.chaojiying.net/Upload/Processing.php’, data=params, files=files, headers=self.headers)return r.json() def ReportError(self, im_id):'''im_id:報錯題目的圖片ID'''params = { ’id’: im_id,}params.update(self.base_params)r = requests.post(’http://upload.chaojiying.net/Upload/ReportError.php’, data=params, headers=self.headers)return r.json()#獲取驗證碼def get_verify_img(web): web.find_element_by_xpath(’/html/body/div[2]/div[2]/ul/li[2]/a’).click() time.sleep(5) verify_img = web.find_element_by_xpath(’//*[@id='J-loginImg']’) return verify_img#識別驗證碼返回坐標def discern_verify_img(verify_img): chaojiying = Chaojiying_Client(’超級鷹賬號’, ’密碼’, ’軟件ID’) responce = chaojiying.PostPic(verify_img.screenshot_as_png, 9004) pre_location = responce[’pic_str’] location_list = pre_location.split('|') # 把split寫錯了,卡了半天 # type_pre_location = type(pre_location) return location_list # return type_pre_location#拿到坐標模擬點擊def click_and_enter(web,location_list,img): for pre_location in location_list:#切割出來x,y坐標location = pre_location.split(’,’)x = int(location[0])y = int(location[1])ActionChains(web).move_to_element_with_offset(img,x,y).click().perform()def enter(web): # input() web.find_element_by_xpath(’//*[@id='J-userName']’).send_keys(’賬號’) web.find_element_by_xpath(’//*[@id='J-password']’).send_keys(’密碼’) web.find_element_by_xpath(’//*[@id='J-login']’).click()#滑動驗證def move_verify(web): button = web.find_element_by_xpath(’//*[@id='nc_1__scale_text']/span’) ActionChains(web).drag_and_drop_by_offset(button,340,0).perform()# 騙12306這不是chromedriverdef trick_not_chromedriver(): option = Options() option.add_argument(’--disable-blink-features=AutomationControlled’) return option#現在有一個疫情防控的確認按鈕,點一下這個def yqfk(web): web.get(’https://kyfw.12306.cn/otn/leftTicket/init’) time.sleep(1) web.find_element_by_xpath(’//*[@id='qd_closeDefaultWarningWindowDialog_id']’).click()#進入查詢界面,思路正則表達式,不可信def get_stick_text(web): web.get(’https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=2021-04-16&leftTicketDTO.from_station=TNV&leftTicketDTO.to_station=CZF&purpose_codes=0X00’) response = web.find_element_by_xpath(’/html/body/pre’).text return (response)#父子節點一個一個找,顯示余票if __name__ == ’__main__’: web = Chrome(options=trick_not_chromedriver()) web.get(’https://kyfw.12306.cn/otn/resources/login.html’) time.sleep(5) # click_and_enter(discern_verify_img(get_verify_img())) img = get_verify_img(web) click_and_enter(web,discern_verify_img(img),img) time.sleep(5) enter(web) time.sleep(5) move_verify(web) time.sleep(1) yqfk(web) time.sleep(2) get_verify_img(web)

已經可以登錄的,結果就是這個界面

python解決12306登錄驗證碼的實現

還有一個想法是余票檢測,在搞了,應該快了

到此這篇關于python解決12306登錄驗證碼的實現的文章就介紹到這了,更多相關python 12306登錄驗證碼 內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: 12306 車票 Python
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品国产三级在线观看| 伊人国产精品| 国产亚洲精品久久久久婷婷瑜伽| 久久成人高清| 国产精品久久久久av蜜臀| 亚洲综合小说| 激情欧美丁香| 午夜日韩av| 99视频一区| 亚洲精品乱码久久久久久蜜桃麻豆| 99亚洲精品| 日韩高清三区| 国产精品成人**免费视频| 久久精品三级| 日韩中文首页| 激情婷婷久久| 最新亚洲国产| 国产欧美一区二区精品久久久| 国产精品香蕉| 韩国精品主播一区二区在线观看| 亚洲二区视频| 蜜臀精品久久久久久蜜臀| 婷婷精品久久久久久久久久不卡| 四虎精品一区二区免费| 欧美精品观看| 日韩在线高清| 视频一区视频二区在线观看| 久久国产日韩欧美精品| 电影91久久久| 蜜臀av一区二区三区| 天堂va欧美ⅴa亚洲va一国产| 开心激情综合| 欧美va亚洲va日韩∨a综合色| 综合干狼人综合首页| 欧美国产美女| 欧美日一区二区三区在线观看国产免 | 国精品产品一区| 国产精品美女久久久| 久久香蕉网站| 在线国产日韩| 久久久久久久久久久妇女| 日本a口亚洲| 日韩亚洲精品在线| 成人欧美一区二区三区的电影| 中文字幕日韩亚洲| 色婷婷亚洲mv天堂mv在影片| 中文字幕亚洲精品乱码| 亚洲手机在线| 另类小说一区二区三区| 免费成人av在线播放| av中文字幕在线观看第一页 | 亚洲网站视频| 国产成人精品一区二区三区视频| 中文字幕一区二区精品区| 日韩精品免费一区二区三区| 欧美91在线|欧美| 国产精品扒开腿做爽爽爽软件| 亚洲丝袜美腿一区| 久久免费高清| 欧美丰满日韩| 美女国产一区二区三区| 久久精品72免费观看| 亚洲伊人精品酒店| 香蕉久久一区| 欧美日韩一区自拍| 欧美专区一区| 欧美日韩一视频区二区| 欧美一区影院| 精品一区二区三区中文字幕视频| 久久爱www.| 美女视频网站久久| 国产中文字幕一区二区三区| 成人一二三区| 亚洲天堂一区二区| 欧美日韩中文字幕一区二区三区| 91看片一区| 久久成人精品| 国产情侣久久| 麻豆mv在线观看| 99pao成人国产永久免费视频| 综合激情在线| 日本少妇一区二区| 高清在线一区| 欧美日韩激情| 日韩专区视频网站| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 国产日韩欧美一区在线| 国产精品欧美三级在线观看| 免费观看亚洲| 免费黄网站欧美| 国产精品久久久久av蜜臀| 风间由美中文字幕在线看视频国产欧美| 亚洲黄色中文字幕| 蜜臀av在线播放一区二区三区| 国产欧美一区二区三区国产幕精品 | 欧美在线日韩| 久久影院一区| 国产精品一区二区三区av麻| 激情婷婷综合| 久久麻豆视频| 欧美专区一区二区三区| 黄色网一区二区| 中文字幕成人| 亚洲婷婷免费| 色婷婷色综合| 免费观看日韩电影| 日韩国产一区二区| 日本精品另类| 久久久天天操| 成人一二三区| 久久99青青| 欧美一区二区三区久久精品| 久久福利一区| 欧美精品一二| 三上悠亚国产精品一区二区三区| 日本高清久久| 免费美女久久99| 国产精品7m凸凹视频分类| 红杏一区二区三区| 欧美日韩一区二区三区四区在线观看 | 欧美国产一级| 国产精品欧美在线观看| 无码日韩精品一区二区免费| 亚洲在线成人| 午夜在线视频一区二区区别| 日韩网站中文字幕| 成人欧美一区二区三区的电影| 免费一级欧美片在线观看网站| 亚洲人成高清| 日韩高清在线不卡| 91嫩草精品| 国产乱人伦丫前精品视频| 欧美亚洲专区| 麻豆久久久久久| 欧美精品成人| 精品视频自拍| 黑人精品一区| 不卡视频在线| 国产亚洲毛片| 日本午夜精品久久久久| 欧美伊人影院| 国精品产品一区| 久久一区二区三区喷水| 97se综合| 婷婷国产精品| 天堂va蜜桃一区二区三区| 天堂久久av| 红杏一区二区三区| 激情久久久久久| 亚洲一区二区三区四区电影 | 一区二区电影在线观看| 日韩成人午夜精品| 国产高清视频一区二区| 婷婷激情一区| 在线观看免费一区二区| 日韩毛片网站| 日韩啪啪电影网| 亚洲一区网站| 久久99国产精品视频| 激情欧美一区二区三区| 久久狠狠亚洲综合| 久久久水蜜桃av免费网站| 欧美日韩精品一区二区三区在线观看| av最新在线| 欧美在线黄色| 亚洲小说欧美另类婷婷| 日韩精品久久理论片| 亚洲性色av| 国产精品久久久久久久久久久久久久久| 激情国产在线| 久久精品凹凸全集| 伊人精品视频| se01亚洲视频| 国产精品美女午夜爽爽| 日韩视频在线一区二区三区| 精品女同一区二区三区在线观看| 蜜桃伊人久久| 欧美日韩日本国产亚洲在线| 激情综合婷婷| 美女国产精品久久久| 日韩一区二区三区高清在线观看| 美女少妇全过程你懂的久久| 国产一区二区三区国产精品| 日韩一二三区在线观看| 久久婷婷丁香| 四虎国产精品免费观看| 欧美一区激情| 欧美视频久久| 日本成人中文字幕| 日本少妇一区二区| 中文无码久久精品| 蜜桃免费网站一区二区三区| re久久精品视频| 国产婷婷精品| 亚洲少妇自拍| 免费精品视频| 日韩欧美高清一区二区三区| 亚洲免费一区三区| 四虎在线精品| 欧美日一区二区在线观看|