鱼C论坛

 找回密码
 立即注册
查看: 1691|回复: 1

[原创] 12306模拟登陆

[复制链接]
发表于 2018-7-11 17:58:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 幽梦三影 于 2018-7-11 18:35 编辑

12306的验证码靠的是捕捉鼠标坐标来验证的
可通过qq截图从第一个点移动到第二个点查看坐标
from http.cookiejar import CookieJar
import urllib.request as u
import urllib.parse
import json
import easygui as e

url = 'https://kyfw.12306.cn/passport/captcha/captcha-check'
cookie = CookieJar()
opener = u.build_opener(u.HTTPCookieProcessor)
img_url = 'https://kyfw.12306.cn/passport/captcha/captcha-image?login_site=E&module=login&rand=sjrand&0.2303874087852643'
headers = {'User-Agent':"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"}
rep = u.Request(img_url,headers=headers)
html = opener.open(rep).read()
with open('验证码.png','wb') as f:
    f.write(html)

num = e.enterbox(msg='请输入验证码坐标',image='验证码.png')
data = {
    'answer':num,
    'login_site':'E',
    'rand':'sjrand'
}
data = urllib.parse.urlencode(data).encode('utf-8')
rep = u.Request(url,headers=headers)
html = opener.open(rep,data=data).read().decode('utf-8')
if json.loads(html)['result_code'] == '4':
    print('验证码校验成功')
    user = []
    title = '登录'
    msg = '请输入用户名和密码'
    fields = ['用户名','密码']
    user = e.multpasswordbox(msg,title,fields=fields)

    form = {
        'appid':'otn',
        'password':user[1],
        'username':user[0]
    }
    log_url = 'https://kyfw.12306.cn/passport/web/login'
    form = urllib.parse.urlencode(form).encode('utf-8')
    rep = u.Request(log_url,headers=headers)
    html = opener.open(rep,data=form).read().decode('utf-8')
    if json.loads(html)['result_code'] == 0:
        print('登录成功')
    else:
        print('登录失败')
else:
    print('验证码校验失败')


InkedUT6ZX6{`0YI_PM5QF[BV((H_LI.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-7-11 18:24:04 | 显示全部楼层
厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 17:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表