欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > python解決12306登錄驗證碼的實現

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

熱門標簽:地圖制圖標注位置改變是移位嗎 房產電銷外呼系統 地圖標注的意義點 蓋州市地圖標注 南京銷售外呼系統軟件 地圖標注微信發送位置不顯示 浙江電銷卡外呼系統好用嗎 上海機器人外呼系統哪家好 315電話機器人廣告

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

準備工作

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然后切換到賬號登錄

默認是掃碼登錄


F12然后點擊賬號登錄


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


代碼實現

from selenium.webdriver import Chrome
web = 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圖片和滑動驗證通過以后一直說驗證失敗,百思不得其解,百度發現是因為這個


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

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

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

全部代碼

from selenium.webdriver import Chrome
import requests,time
from hashlib import md5
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.chrome.options import Options
class Chaojiying_Client(object):

    def __init__(self, username, password, soft_id):
        self.username = username
        password =  password.encode('utf8')
        self.password = md5(password).hexdigest()
        self.soft_id = soft_id
        self.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這不是chromedriver
def 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-16leftTicketDTO.from_station=TNVleftTicketDTO.to_station=CZFpurpose_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網絡爬蟲之模擬登錄 自動獲取cookie值 驗證碼識別的具體實現
  • 教你怎么用python批量登錄帶有驗證碼的網站
  • python 模擬網站登錄——滑塊驗證碼的識別
  • 用python登錄帶弱圖片驗證碼的網站
  • 基于Python實現原生的登錄驗證碼詳情

標簽:陽泉 克拉瑪依 雙鴨山 金華 日照 赤峰 臨汾 貴州

巨人網絡通訊聲明:本文標題《python解決12306登錄驗證碼的實現》,本文關鍵詞  python,解決,12306,登錄,驗證,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python解決12306登錄驗證碼的實現》相關的同類信息!
  • 本頁收集關于python解決12306登錄驗證碼的實現的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    日本久久电影网| 亚洲高清免费视频| 亚洲人成小说网站色在线| 国内精品伊人久久久久av影院| 亚洲男人在线天堂| 欧美人与z0zoxxxx视频| 亚洲国产一区二区三区 | 亚洲男人都懂的| 成人丝袜18视频在线观看| 69夜色精品国产69乱| 国产欧美精品一区二区三区四区| 狠狠狠色丁香婷婷综合久久五月| 国产一级久久久久毛片精品| 久久午夜色播影院免费高清| 蜜臀av一区二区| 色无极影院亚洲| 久久色视频免费观看| 国产精品一区二区在线观看网站 | 国产+成+人+亚洲欧洲自线| 99热这里只有精品4| 中文字幕不卡三区| 福利电影一区二区三区| 色拍拍在线精品视频8848| 亚洲久草在线视频| 性xxxxxxxxx| 91精品国产综合久久小美女| 日韩电影在线观看电影| 亚欧洲乱码视频| 国产午夜精品一区二区三区嫩草 | 久久久99999| 国产精品久久久久永久免费观看 | 久久九九久精品国产免费直播| 国产一区二区在线影院| 中文字幕在线观看2018| 亚洲丝袜另类动漫二区| 91捆绑美女网站| 欧美一区二区免费观在线| 看电影不卡的网站| 亚洲精品国产精品国自产网站| 久久免费电影网| 成人久久久精品乱码一区二区三区| 日本电影欧美片| 首页综合国产亚洲丝袜| 香蕉视频久久久| 国产精品国产三级国产aⅴ无密码| av资源网一区| 欧美一区二区三区四区五区| 国产在线播放一区二区三区| 色网站国产精品| 丝袜美腿一区二区三区| 日本黄色激情视频| 亚洲精品国产精品乱码不99 | 亚洲一二三区不卡| 亚洲福利一区二区三区| 3d动漫精品啪啪一区二区下载| 久久久久久久久久久久久夜| 99久久婷婷国产| 日韩欧美国产综合| 风间由美一区二区av101| 欧美日韩亚洲国产综合| 久久99国产精品久久99| 色88888久久久久久影院按摩 | 欧美在线看片a免费观看| 美女视频免费一区| 一本到三区不卡视频| 日本vs亚洲vs韩国一区三区 | 视频国产一区二区| 亚洲国产成人高清精品| 污污视频网站在线免费观看| 亚洲综合色视频| 国产精品视频在| 午夜精品久久久久久久| 日韩福利小视频| 七七婷婷婷婷精品国产| 色婷婷综合久久久久中文 | 国产欧美综合在线观看第十页| 91女厕偷拍女厕偷拍高清| 精品国产亚洲在线| 91av免费观看| 国产欧美一区二区三区在线老狼| 韩国黄色一级片| 国产精品美女一区二区三区| 无套内谢大学处破女www小说| 亚洲日本va午夜在线电影| 久久成人激情视频| 亚洲一区二区中文在线| 亚洲视频重口味| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美中文字幕一区二区三区亚洲| 国产一区二区三区免费看| 在线播放中文字幕一区| 成人avav影音| 国产亚洲精品超碰| 99久久久久久久久久| 亚洲午夜久久久| 国产精品 欧美激情| 精品亚洲免费视频| 日韩一区二区三区精品视频| 中国老熟女重囗味hdxx| 日本一区二区三区在线免费观看| 日本不卡的三区四区五区| 色av成人天堂桃色av| 粉嫩aⅴ一区二区三区四区五区| 精品国产乱码久久久久久久久| 无码人妻久久一区二区三区蜜桃| 中文字幕一区二区三区乱码在线| 欧美老女人性生活视频| 日本女人一区二区三区| 欧美日本精品一区二区三区| 一区二区三区四区不卡视频| 亚洲视频狠狠干| 中国美女乱淫免费看视频| 午夜久久久久久久久| 在线看日韩精品电影| 国产成人午夜精品5599| 久久久久久电影| 日韩欧美国产1| xxxx国产视频| 亚洲人精品一区| 色综合天天综合| 成人午夜精品一区二区三区| 国产清纯在线一区二区www| 日韩中文字幕有码| 日本免费在线视频不卡一不卡二| 欧美三级视频在线| 爱情岛论坛亚洲自拍| 亚洲精品一二三| 色婷婷综合久色| 97久久久精品综合88久久| 中文字幕人成不卡一区| 日韩av手机在线免费观看| 国产在线麻豆精品观看| 久久蜜桃av一区二区天堂| free性中国hd国语露脸| 男男成人高潮片免费网站| 日韩一区二区三区高清免费看看| 黄色国产在线观看| 麻豆久久久久久| 久久久亚洲高清| 国产精品69久久久久孕妇欧美| 国产在线一区二区综合免费视频| 久久精品这里都是精品| 日韩欧美综合视频| 91丨九色丨蝌蚪富婆spa| 一二三四区精品视频| 欧美美女一区二区三区| 亚洲国产精品成人综合久久久| 美女一区二区视频| 久久久久99精品一区| 日韩亚洲欧美中文字幕| 97久久超碰精品国产| 一区二区三区欧美视频| 在线播放91灌醉迷j高跟美女| 亚洲欧美日本一区| 激情六月婷婷久久| 久久久精品免费网站| 久久午夜羞羞影院免费观看| 91精品国产一区二区三区蜜臀| 日韩黄色小视频| 日韩女优电影在线观看| 1024手机在线观看你懂的| 成人亚洲精品久久久久软件| 亚洲色欲色欲www| 欧美人与禽zozo性伦| 国产人妻大战黑人20p| 丰满白嫩尤物一区二区| 亚洲最快最全在线视频| 日韩美一区二区三区| 精品国产国产综合精品| 精品国产午夜福利在线观看| 日日摸夜夜添夜夜添国产精品 | 亚洲中文字幕无码一区| 日韩av一区二区在线影视| 久久天堂av综合合色蜜桃网| 色综合一个色综合| 亚洲中文字幕无码一区| 国产成人在线免费观看| 亚洲一区二区视频在线观看| 337p粉嫩大胆噜噜噜噜噜91av| 69av视频在线| 中文成人无字幕乱码精品区| 国产麻豆成人传媒免费观看| 一区二区三区四区国产精品| 久久日韩精品一区二区五区| 一本到不卡精品视频在线观看| 91丨porny丨对白| 国产一区二区三区av电影 | 91精品国产乱码久久蜜臀| 老头老太做爰xxx视频| 91视频国产观看| 久久国产乱子精品免费女| 亚洲欧美偷拍三级| 精品少妇一区二区三区免费观看| 国产av无码专区亚洲av毛网站| 久久人妻少妇嫩草av无码专区| 国产 日韩 欧美大片| 秋霞影院一区二区| 一区在线中文字幕| 日韩精品一区二区三区四区视频| 小泽玛利亚一区二区免费|