基本信息
源码名称:python 手动验证并模拟登录12306
源码大小:1.55KB
文件格式:.py
开发语言:Python
更新时间:2018-08-15
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
提示让输入验证码序号的时候(多个序号 以逗号隔开即可),就可以在同目录下打开图片验证码captcha.jpg,类似如下:
import requests
from random import random
import conf
point = {
'1': '32,67',
'2': '107,67',
'3': '180,67',
'4': '250,67',
'5': '32,129',
'6': '107,129',
'7': '180,129',
'8': '250,129',
}
def get_answer(index):
index = index.split(',')
temp = []
for item in index:
temp.append(point[item])
return ','.join(temp)
session = requests.Session()
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko'
') Chrome/67.0.3396.99 Safari/537.36'
}
s = random()
captcha_url = 'https://kyfw.12306.cn/passport/captcha/captcha-image?login_site=E&module=login&rand=sjrand&%s' % s
response = session.get(captcha_url)
with open('captcha.jpg', 'wb') as f:
f.write(response.content)
check_captcha_url = 'https://kyfw.12306.cn/passport/captcha/captcha-check'
data = {
'answer': get_answer(input('请输入验证码的序号>>>:')),
'login_site': 'E',
'rand': 'sjrand'
}
response = False
while not response:
response = session.post(check_captcha_url, data=data, headers=headers)
if response:
print('验证成功')
else:
print('请重新验证')
# 发送登录请求的方法
loginUrl = 'https://kyfw.12306.cn/passport/web/login'
data = {
'username': conf.username,
'password': conf.password,
'appid': 'otn'
}
result = session.post(url=loginUrl, data=data, headers=headers)
if result:
print('登录成功')
# 查询用户联系人信息