zoukankan      html  css  js  c++  java
  • 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': "sunyuke@qq.com"
        };
        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();

    原帖来自 http://bbs.csdn.net/topics/390765711 

  • 相关阅读:
    pytorch报错:AttributeError: 'module' object has no attribute '_rebuild_tensor_v2'
    python运行报错:cannot import name 'InteractiveConsole'
    sudo pip3找不到命令
    pytorch入门1——简单的网络搭建
    caffe训练时报错
    python滴啊用caffe时的小坑
    求两个字符串的编辑距离
    归并排序
    复杂度n求数组的第K大值
    牛顿法与拟牛顿法学习笔记(一)牛顿法
  • 原文地址:https://www.cnblogs.com/codex/p/4193057.html
Copyright © 2011-2022 走看看