微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python模拟登录12306的方法

这篇文章主要介绍了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': "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();

上一篇:python函数声明和调用定义及原理详解下一篇:opencv转换颜色空间更改图片背景 热门搜索

模拟登录12306 

python模拟登录 

模拟登录 

登录模拟 

模拟用户登录 

相关文章

Python模拟登录12306的方法

2021-11-09阅读(10211)评论(0)推荐()

这篇文章主要介绍了Python模拟登录12306的方法,是非常实用的技巧,具有一定参考借鉴价值,需要的朋友可以参考下

python+selenium实现12306模拟登录的步骤

2021-11-04阅读(8738)评论(0)推荐()

这篇文章主要介绍了python+selenium实现12306模拟登录的步骤,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下

Python模拟登录的多种方法(四种)

2021-10-13阅读(6280)评论(0)推荐()

目录方法一:直接使用已知的cookie访问方法二:模拟登录后再携带得到的cookie访问方法三:模拟登录后用se

selenium+超级鹰实现模拟登录12306

2021-11-04阅读(7007)评论(0)推荐()

这篇文章主要介绍了selenium+超级鹰实现模拟登录12306,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随...

Python爬虫之模拟知乎登录方法教程

2021-11-08阅读(5194)评论(0)推荐()

在爬虫过程中,有些页面登录之前是被禁止抓取的,这个时候就需要模拟登陆了,下面这篇文章主要给大家介绍了利用Python爬虫模拟知乎登录方法教程,文中介绍的非常...

Python模拟登录登录跳转的参考示例

2021-11-09阅读(6402)评论(0)推荐()

这篇文章主要介绍了Python模拟登录登录跳转的参考示例,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下

python模拟登录百度贴吧(百度贴吧登录)实例

2021-10-13阅读(10480)评论(0)推荐()

python模拟登录百度贴吧实例分享,大家参考使用吧

取消

有人回复邮件通知

提交评论

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐