9159金沙游艺场-奥门金沙游艺场-[欢迎您]

9159金沙游艺场为您呈现最新的面貌!,目前注册送体验金,欢迎您将成为影视娱乐行业新的风向标,是亚洲的优质娱乐先锋。

Python模拟登陆12306

日期:2020-01-04编辑作者:办公软件

Python模拟登录12306,python模拟12306

#!/usr/bin/python
# -*- coding: utf-8 -*-

import re;
import sys;
import cookielib;
import urllib;
import urllib2;
import optparse;
import json;
import httplib2;

reload(sys)
sys.setdefaultencoding('utf8');

def Login():

    cj = cookielib.CookieJar();
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj));
    urllib2.install_opener(opener);

    print "--------------[step1] to get cookie";
    Url = "https://kyfw.12306.cn/otn/login/init";
    resp = urllib2.urlopen(Url);
    for index, cookie in enumerate(cj):
        print '[',index, ']',cookie;


    print "--------------[step2] to get code";
    Url2 = "https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew?module=login&rand=sjrand";
    resp2 = urllib2.urlopen(Url2);

    #respInfo2 = resp2.info();
    #print "respInfo=",respInfo2;

    with open("code.png", "wb") as image:
        image.write(resp2.read())

    codeStr = sys.stdin.readline();
    codeStr = codeStr[:-1]

    print "--------------[step3] to check code";
    ajax_url = "https://kyfw.12306.cn/otn/passcodeNew/checkRandCodeAnsyn";
    dc = {
        'randCode'      :  codeStr,
        'rand'      : "sjrand"
    };
    request = urllib2.Request(ajax_url, urllib.urlencode(dc))
    request.add_header("Content-Type", "application/x-www-form-urlencoded; charset=utf-8")
    request.add_header('X-Requested-With','XMLHttpRequest')
    request.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36')
    request.add_header('Referer','https://kyfw.12306.cn/otn/login/init')
    request.add_header('Accept','*/*')
    request.add_header('Accept-Encoding','gzip, deflate')

    f = urllib2.urlopen(request) 
    print(f.read())


    print "--------------[step4] to login";
    LoginUrl = "http://kyfw.12306.cn/otn/login/loginAysnSuggest";
    dc = {
         'randCode'      :  codeStr,
         'userDTO.password'     : "sunyuke1989",
        'loginUserDTO.user_name': "[email protected]"
    };
    req = urllib2.Request(LoginUrl, urllib.urlencode(dc));
    req.add_header('Content-Type', "application/x-www-form-urlencoded");
    req.add_header('X-Requested-With','XMLHttpRequest');
    req.add_header('Origin','https://kyfw.12306.cn');
    req.add_header('Referer','https://kyfw.12306.cn/otn/login/init');
    req.add_header('Accept','*/*');
    req.add_header('Accept-Encoding','gzip, deflate');
    req.add_header('Connection','keep-live');
    request.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36')
    resp = urllib2.urlopen(req);
    print(resp.read().encode('gb18030'));


    LoginingUrl = "https://kyfw.12306.cn/otn/login/userLogin";
    req = urllib2.Request(LoginingUrl, "");

    print "--------------[step5] to QueryUserInfo";
    LoginingUrl = "https://kyfw.12306.cn/otn/modifyUser/initQueryUserInfo";
    req = urllib2.Request(LoginingUrl, "");
    resp = urllib2.urlopen(req);
    info = resp.read();
    print(resp.read().encode('gb18030'));


if __name__=="__main__":
    Login();

原帖来自  

# !/usr/bin/python # -*- coding: utf-8 -*- import re; import sys; import cookielib; import urllib; import urllib2; import optparse; impo...

本文由9159金沙游艺场-奥门金沙游艺场-[欢迎您]发布于办公软件,转载请注明出处:Python模拟登陆12306

关键词:

4系统进级

CenOS6.4 系统升级内核,cenos6.4系统升级   获取要升级的内核版本的包 #wget -c  若得到的内核的压缩格式为tar.xz,则需...

详细>>

select样式优化

CSS select样式优化 含jquery代码,cssjquery CSS下拉选择菜单基本的CSS样式不怎么好看,通过一些简单的样式优化,可以得...

详细>>

设置环境变量

Linux 设置环境变量,linux设置环境变量 Shell会话有两种类型:login shell 会话和 non-login shell 会话。loginshell会话会提示用...

详细>>

IE6包容难点

【面试季之三】IE6兼容问题,面试ie6兼容   最近面试真的碰到很多基础的问题,平时在工作的时候往往可以直观的看...

详细>>