日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 12306登录_Python 12306登陆详细分析及操作

發布時間:2023/12/20 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 12306登录_Python 12306登陆详细分析及操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前面的話: 1.第一次嘗試爬蟲,登陸12306,有不足的地方,望大家留言告知,謝謝。

2.前面引入了一個requests模塊,我不多說,大家都知道干啥的。還有config是我的一個配置文件,因為其中涉及到賬號密碼。

3.每一部分都注釋的比較清楚,大家應該都能看得懂,發完這篇文章后,會繼續去研究,待下一次發一個完整版的搶票代碼。

import requests

import config

# request 的 cookie 保存

person = requests.Session()

# 1. 訪問登錄界面

login_init_response = person.get(url='https://kyfw.12306.cn/otn/login/init')

# print(login_init_response.text)

# 2. 請求驗證碼

captcha_url = \

"https://kyfw.12306.cn/passport/captcha/captcha-image?login_site=E&module=login&rand=sjrand&0.31745546375395106"

captcha_response = person.get(url=captcha_url)

captcha_content = captcha_response.content # 轉換類型

fb = open('captcha.jpg', 'wb') # 把字節類型轉換為圖片文件

fb.write(captcha_content)

fb.close()

# 3. 檢驗驗證碼

captcha_check_url = \

'https://kyfw.12306.cn/passport/captcha/captcha-check'

captcha_check_data = {

'answer': input('請輸入驗證碼坐標>>>:'),

'login_site': 'E',

'rand': 'sjrand'

}

check_response = person.post(url=captcha_check_url, data=captcha_check_data)

# print(check_response.text)

# 4. 檢驗用戶名和密碼

login_url = 'https://kyfw.12306.cn/passport/web/login'

login_data = {

'username': config.username,

'password': config.password,

'appid': 'otn'

}

login_response = person.post(url=login_url, data=login_data)

print(login_response.text)

if login_response.json()['result_code'] != 0:

exit("用戶名或密碼錯誤!")

# 5. 獲取權限數據token(為下一步操作做準備)

token_url = 'https://kyfw.12306.cn/passport/web/auth/uamtk'

token_data = {

'appid': 'otn'

}

token_response = person.post(url=token_url, data=token_data)

print(token_response.text)

token_res = token_response.json()

# 6. 獲取操作權限

auth_url = 'https://kyfw.12306.cn/otn/uamauthclient'

auth_data = {

'tk': token_res['newapptk']

}

auth_response = person.post(url=auth_url, data=auth_data)

print(auth_response.text)

運行結果:

總結

以上是生活随笔為你收集整理的python 12306登录_Python 12306登陆详细分析及操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。