#!/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();

python模拟登录12306_Python模拟登录12306的方法相关推荐

  1. python模拟登录12306_python模拟登录12306缺少cookies

    [Python] 纯文本查看 复制代码API_GET_BROWSER_DEVICE_ID = '此处填接口地址' def request_device_id(self): ""&q ...

  2. python爬取12306_python爬取12306列车信息

    #!/usr/bin/env python #coding=utf8 #12306查票爬虫 import requests,json,sys #获取地址代码 #https://kyfw.12306.c ...

  3. python爬取12306_Python 爬取12306火车票

    #!/usr/bin/env python#coding:utf-8 """命令行的火车票查看器 Usage: 12306 [-gdtkz] Options: -h,-- ...

  4. python爬取12306_Python爬取12306车次信息代码详解

    详情查看下面的代码: 如果被识别就要添加一个cookie如果没有被识别的话就要一个user-agent就好了.如果出现乱码就设置编码格式为utf-8 #静态的数据一般在elements中(复制文字到s ...

  5. python爬取12306_python爬取12306的车次信息

    #静态的数据一般在elements中(复制文字到sources按ctrl+f搜索.找到的为静态),而动态去network中去寻找相关的信息 import requests import re def ...

  6. python爬取12306_python爬取12306火车车次信息

    #-*- coding:utf-8 -*- importrequestsimportreimportjson#关闭https证书验证警告 requests.packages.urllib3.disab ...

  7. Python使用selenium模块模拟登录12306

    selenium模块概述 selenium模块是基于浏览器自动化的一个模块.换句话说使用selenium可以让浏览器根据自己写的代码自动运行. 相应的语法 ·编写基于浏览器自动化的操作代码 · 发起请 ...

  8. python课设总结_Python技术分享课总结:用Python模拟知乎自动登录

    原标题:Python技术分享课总结:用Python模拟知乎自动登录 Python语言是由Guido van Rossum大牛在1989年发明,它是当今世界最受欢迎的计算机编程语言之一,也是一门&quo ...

  9. Python模拟二维码登录百度

    模拟二维码登录百度 写在前面 准备工作 二维码地址 登录状态 获取gid 登录参数 代码部分 二维码展示 获取cookie 完整代码 写在后面 写在前面 前段时间写了利用BDUSS到达百度首页,这一次 ...

最新文章

  1. Java Activiti 工作流引擎 流程审批 后台框架源码 springmvc SSM
  2. java 主备切换_keepalived 实现 Java 服务的高可用(主备切换)
  3. LDA的Gibbs抽样详细推理与理解
  4. python产生随机数并排序_中小学python教学案例:随机数按升序排列 输出
  5. VC++工作笔记0002---积累-VC++中的L“”是什么意思
  6. Spark修炼之道——Spark学习路线、课程大纲
  7. 计算机接口论文摘要,计算机接口技术论文_计算机接口技术
  8. 阿里巴巴中台战略--共享服务体系
  9. Java实现微信退付款
  10. 安全工具-curl学习
  11. 计算机组成原理~计算机系统简介①
  12. 自然语言处理入门(5)——基于WordArt的AGM手机评论词频分析
  13. MySQL中的limit分页的使用
  14. 重磅更新丨zCloud 数据库云管平台 v2.5
  15. 扫地机器人(简单路径规划)
  16. JAVA SpringBlade 微服务开发平台框架,企业级的SaaS多租户微服务平台,基于Spring Boot 2.7
  17. Pytorch常用张量变换操作
  18. 记录一下:老衲的py路程 mac下的tkinter小应用
  19. WEB安全新玩法 [11] 防范批量注册
  20. 中国焦炭行业发展现状及趋势分析,提高市场集中度「图」

热门文章

  1. 友善SD卡烧写工具(SD-Flasher)替代解决方案
  2. Q4整体超出预期,动视暴雪靠什么度过营收净利双降的中年危机?
  3. 计算机网络课程教学,计算机网络课程教学新道路
  4. 用树莓派做相机,制作定格动画视频
  5. 剑网3显示服务器屏蔽,剑网3手游被网友戏称断网3,服务器问题阻止不了玩家的热情...
  6. 上手结巴分词文本分析,输出热词、TF-IDF权重和词频
  7. 用 Python 制作 NFT 区块链作品(上)
  8. matlab 1994年逢山开路问题,1994年全国大学生数学建模逢山开路问题
  9. 微前端框架micro-app实践
  10. 为什么光标停在表格中间_excel中单元格中的光标为什么总在中间位置_word光标怎么设置...