최근 몇 년 동안, 점점 더 심각한의 12,306에, - 상승 안티 JS, CSS 등의 암호화를 증가 년 전에 매개 변수 TK를 획득 한 후!
현재, 대부분의 사람들은이 기사도 예외는 아니다, 착륙 접근 방식은 셀레늄의 사용이다 사용합니다.
환경 :
윈도우
파이썬 3.6.5
모듈 :
셀렌
pyautogui
시각
첫 번째 단계 :
브라우저를 인스턴스화하고 12,306 공식 웹 사이트를 입력
드라이버 = webdriver.Chrome () driver.get ( ' https://kyfw.12306.cn/otn/resources/login.html ' ) driver.implicitly_wait ( 10 ) driver.maximize_window ()
단계 :
계정 로그인을 클릭합니다
driver.find_element_by_xpath ( ' [2] / HTML / 바디 / DIV [2] / DIV [2] / UL / 리 ' .click) ()
세 번째 단계 :
입력 상자에서 아날로그 입력은 계정 암호 :
driver.find_element_by_xpath ( ' //'* @ ID = "J 사용자 명이"] ' ) .send_keys ( ' 123456 ' ) driver.find_element_by_xpath ( ' // * [ID = "J-비밀번호"@] ' .send_keys) ( ' 123456 ' )
4 단계 :
계정 암호를 입력하면, 우리는 사진 확인 코드에 클릭을 시뮬레이션하면됩니다한다!
그래서 먼저 사진을 다운로드 :
yzm_code driver.find_element_by_xpath = ( ' / HTML / 바디 / DIV [2] / DIV [2] / DIV [1] / DIV [2] / DIV [3] / DIV ' ) yzm_code.screenshot ( ' yzm.png ' )
5 단계 :
당신은 그들이 그것을 코드 도킹 플랫폼 하오, 자신의 교육 모델인지, 원하는 무엇이든, 또는 클릭을 시뮬레이션하기 위해 코드를 사용할 수 있습니다 후 다운로드 확인 코드도 가능합니다!
앞의 두 방법은 단순히 여기에 이용되는 상기 제 3 실시 예에서, 시뮬레이션 된 클릭 수 말할 수 없다.
여기에서 우리는 그때가 자동으로 1,2,3 1,2,3 세 사진을 클릭 내가 프로그램을 입력 한 효과를 달성하고자하는 결과를 달성하기 위해 필요,이 코드에 팔지도의 총에 대해 이야기.
그럼 각 사진의 중심 좌표에 도착하자, 규칙이, 지능형 사람들이 한 눈에 파악해야합니다.
나는이 작성 여기 있었다 :
INPUT = 코드 ( ' 이 코드를 입력하세요 ' ) (를 time.sleep . 5 ) point_map = { ' 1. ' : ' 40, 45 ' , ' 2 ' : ' 116,53 ' , ' 4. ' : ' 257,50 ' , ' 5 ' : ' 40121 ' , ' 6 ' : ' 116133 ' , '3 ': ' 185,52 ' , ' 7 ' : ' 185132 ' , ' 8 ' : ' 257130 ' }
DEF (indexs) get_point : indexs = indexs.split ( " , " ) 온도가 = [] 에 대한 인덱스 에 indexs : temp.append (point_map [인덱스]) 인쇄 (TEMP) 복귀 임시 온도 = get_point (코드)
설명되지 않는 코드의이 두 문자열, 아주 기본적인 것들.
순 효과는 1, 2, 목록 당신이 얻을 것이다 입력하는 것입니다 :
['40, 45 ','116,53 ']
, 사진이 좌표에이 확인 코드의 좌표이며, 전체 화면이 아닌 글로벌 좌표를 기억하라! ! ! !
그렇다면 글로벌 좌표를받을 수 있나요? 코드 정점 (1206,428) + 인증 코드, 즉, 글로벌 좌표를 좌표! 여기에 (1206,428)의 자신을 테스트하세요!
6 단계 :
클릭을 시뮬레이션, pyautogui이 모듈을 사용합니다. 지연이 화면을 전환 추가해야합니다이 모듈을 사용하기 전에, 기억하십시오.
(이 기사 만 배울 수있는 방법, 그리고 다른 의미는, 일반적으로 코드 도킹 플랫폼입니다! 우리는 이러한 방법에 사용되는 다른 프로그래밍 과정에서 지식을 적용 할 수 있기를 바랍니다!)
위한 I 에서 : 온도 indexs = i.split ( ' , ' ) X = INT (indexs [0]) , Y = INT (indexs [1 ]) pyautogui.click ( 1206 + X, Y + 428)
마지막으로, 로그인을 클릭합니다!
driver.find_element_by_xpath ( ' // * [ID = "J-로그인"@] ' ) .click ()