记之前的学习,再过一阵子估计忘了。。。

查票不需要登录,但是支付是需要登录的,所以人为操作的话,一般是选择查票->预定->下单(下单时需要登录,出现变态二维码验证)。而我们使用爬虫可以先登录,然后一直保持登录状态,流程:登录->查票->下单(登录时完成了验证)

登录模块并保持session可见之前篇章

查询url:

https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=2018-04-30&leftTicketDTO.from_station=CSQ&leftTicketDTO.to_station=ICW&purpose_codes=ADULT

查询出来的结果:

train_date  是要出发的时间

from_station  是出发站

to_station  是目的站

可以看到返回的json文件中result一栏便是我们查询出来的车的具体信息。拿出一条来分析具体内容。可以看到一条信息中间是以  |  来分割的,采用split("|")来提取出每一个信息。

['null', '列车停运', '630000Z12208', 'Z122', 'GZQ', 'CDW', 'CSQ', 'CDW', '24:00', '24:00', '99:59', 'IS_TIME_NOT_BUY', '', '20180429', '', 'Q9', '03', '15', '0', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0']
['1IdL6OeSyjOsOxbdQuCa3Y8Gti%2FjliuJMJn8UWrqwZwnIOMqS08nauFx%2ByU8LgVf4xNaL%2BcNGS5W%0AySiukRDo%2BwOEpY0V6goMwrPzIjdTBP9CMK%2B6u2%2FnpGJ05CZYCE%2Fr%2BM2GOcTq6GVB2FTUBqQQNlI1%0An5nNJoM9z8XuASHBc32jb6fl3s4gxpCd0tL%2FRZTokNaIqoJuadouxzjE4lHEnMSqXCVCkPowNZhz%0AcOgUGV8QQQXLTQ8jTxJMWV%2FaU3uf', '预订', '6c000G216100', 'G2161', 'CWQ', 'ICW', 'CWQ', 'ICW', '07:58', '15:33', '07:35', 'Y', 'GsHIxKM%2Bse4dDKZNZ7o5Z4ciD9MP%2FFq6S14BeZxZV5TdUEqt', '20180430', '3', 'Q6', '01', '14', '1', '0', '', '', '', '', '', '无', '', '', '', '', '无', '18', '', '', 'O0M0P0', 'OMP', '0']
['g%2B6OX1EV4wfeXF8uLTWRD2UqsJCAzOML7YTmfTJJCAjXyuIlC930YDgjoGmDK8rRpvHdpM%2B5ekOu%0ALDeStR%2Bexq1r1PDWcxtXFC8UdippOZkjgduwpGdbqnGo1LYH8XgUGnNOSN9erAeZ6VKtXmZ8RYF0%0AzWUoEA%2Fk8zA%2FWNnWiqNVgBxWCGCcu%2BwC9AcE9i%2BdxHO9Eq%2FrHHLLXnYC98Bj5r%2BthuOzJXModHyl%0AVsZnlTIUsVxOLAml6ENzV7SZ5hbDslXSw0dYjbk%3D', '预订', '620000K5770M', 'K577', 'CSQ', 'ICW', 'CSQ', 'ICW', '14:00', '11:11', '21:11', 'Y', 'IRkHrYkIRZCqzgnyk8UX9YXI8MgVFQlyedHVqiZ00kO2rLXDiEJc1V2IWFE%3D', '20180430', '3', 'Q7', '01', '18', '0', '0', '', '', '', '无', '', '', '有', '', '无', '有', '', '', '', '', '10401030', '1413', '0']
['UavbzYfc3JEy%2FWiDCC7CFnez%2B0yB2%2FO95Sf9k5jyNr%2BHt1uVVpLQW%2FK4sblNLmhhoksWv4cbvw6P%0AXtUuJ8Zjax8sXizym4728qMqqxxVakGQ5%2BEjlIcLzVLQsRUiPEmE58lY5i8BxuXjtS8nRlCZSYxp%0AXuE5QkZoOY%2FJyGxKGTrHTlMlQFyYk%2B6T%2BTzMkODayHjLQZLDbaAahuGyBTwafk%2BddKqNccE%2FxEZi%0Aobibuu8DSDl0zhwiFR5erCpjcJART8kYzqnN0Y8%3D', '预订', '620000K5020B', 'K502', 'CSQ', 'ICW', 'CSQ', 'ICW', '17:02', '10:53', '17:51', 'Y', 'f0KvuTspxeAi4o6zM1EJoNScVo%2FFCToAmnUbqYBlf7lx3hm5Bl3tCYXpQ4I%3D', '20180430', '3', 'Q6', '01', '09', '0', '0', '', '', '', '无', '', '', '有', '', '无', '有', '', '', '', '', '10401030', '1413', '0']
['syzb%2BAJKph9Irw3WWHnyjqTkvARHk6cTlBzJ9zlln2%2BmY2juPvG8MCufJG45ZZgjvKJYDt3vpw5q%0ARmcuQfzDzlVwVvLzb3dgnUKTfhTg8gnuZQ8EOctkxfoDvjZyatZCHgqfYTp1DM%2FrzIRWID9I8O8H%0AU45T0oV8yI115yXqU7WQy7k0oO6Fj%2Fai6UtLfqxkQUJ7o7CYF9mjSDvDhAKwUG07NP%2B9ediKl1TD%0AFz3uWw4mL%2FoACiY78j94dFdBtYmQ7Tf3yV4aoHc%3D', '预订', '570000K7870O', 'K786', 'NCG', 'ICW', 'CSQ', 'ICW', '18:18', '13:27', '19:09', 'Y', 'iVuA2UPGmD02FGVf4e6rchJUifhgeOSd9i3F8jXZEp%2BCsOA0afut1Tlnx8o%3D', '20180430', '3', 'G1', '11', '19', '0', '0', '', '', '', '无', '', '', '有', '', '无', '无', '', '', '', '', '10401030', '1413', '0']

对照上面查询出来的列车信息图可以简单地分析出来一些信息。

info={"预定号": lst[0],  # 预定号"train_no": lst[2],"车次": lst[3],  # 车次"始发站": lst[4],  # 始发站"终点站": lst[5],  # 终点站"起始站": lst[6],  # 起始站"目标站": lst[7],  # 目标站"出发时间": "{} {}".format(date, lst[8]),  # 出发时间"到达时间": (date,lst[9]),  # 到达时间"历时": lst[10],  # 历时"train_location": lst[15],"高级动卧": lst[21],  # 高级动卧"软卧": lst[23],  # 软卧"软座": lst[24],  # 软座"特等座": lst[25],  # 特等座"无座": lst[26],  # 无座"硬卧": lst[28],  # 硬卧"硬座": lst[29],  # 硬座"二等座": lst[30],  # 二等座"一等座": lst[31],  # 一等座"商务座": lst[32],  # 商务座"动卧": lst[33],  # 动卧}

对应的城市编码可以在https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.9051查看。比如长沙->CSQ,具体分析下一篇介绍。

至此,查票阶段差不多完成,可以根据上述的相关内容提取相应的字段,在下单时候post表单数据用到。

查票环节代码流程: post 查票url  ->  分析response中数据

Python3 requests 12306查票模块相关推荐

  1. 快过年了,Python实现12306查票以及自动购票....

    嗨害大家好鸭!我是小熊猫~ 明天就是2023年啦~ 还有谁像我小熊猫一样没有回家的? 这次康康能不能12306抢票回家!!! Python实现12306查票以及自动购票 [代码来源]: 青灯教育-自游 ...

  2. 用Python实现一个简单好用的12306查票系统

    春节快到了,又要到一年中紧张刺激的时候了! 买票回家! 今天教大家想做一个简单好用的查票系统! 本次用到环境和模块 环境: Python 3.6 Pycharm 模块 requests pandas ...

  3. python3 requests 12306城市中文转英文编码

    我们去买车票不可能输入城市的英文代码,我们都是输入城市的中文名称,然后直接查询,下单.所以我们需要将输入的中文名称转为服务器认识的英文编码. https://kyfw.12306.cn/otn/lef ...

  4. 基于Python 3.4 实现的12306查票器

    学了一学期Python还是让我感受到这是一门强大的语言,如果能熟练使用许多库的话,它给人带来的方便是非常大的, 很难想象一位Freelancer当初单枪匹马搞出来的语言,如今能发展壮大到这个程度! 本 ...

  5. python3 requests 12306下单环节

    完成之前的登录,查票(城市编号转换之后),重头戏也是最复杂的环节来了,要完成下单,需要经过下列一系列验证,且均要通过验证,由此可见12306的反爬机制做的还是相当出色的. 1.检查用户是否保持登录成功 ...

  6. java实现12306查票_[转]java抓取12306信息实现火车余票查询示例firefox

    最近在弄一个微信的公众帐号,涉及到火车票查询,之前用的网上找到的一个接口,但只能查到火车时刻表,12306又没有提供专门的查票的接口.今天突然想起自己直接去12306上查询,抓取查询返回的数据包,这样 ...

  7. vue+node+mongoDB火车票H5(七)-- nodejs 爬12306查票接口

    菜鸟一枚,业余一直想做个火车票查票的H5,前端页面什么的已经写好了,node+mongoDB 也写了一个车站的接口,但 接下来的爬12306获取车次信息数据一直卡住,网上的爬12306的大部分是pyt ...

  8. 过年回家抢不到火车票?教你用 Python 开发 12306 查票神器

    临近年关,不少在外的游子都急着买票回家,但这时候的火车票,总是供不应求的. 我想到了几年前徐峥主演的<人在囧途>,春运期间,一个老板,一个民工,同时都因为买不到火车票而囧态百出,甚至辗转到 ...

  9. 通过Requst进行12306查票(2022-09-10)

    运行演示: 请输入您要出发的城市:北京 请输入您要去往的城市:上海 请输入您要出发的时间(****-**-**):2022-09-10 +--------------+---------------- ...

  10. python 12306查询不到车次_过年回家抢不到火车票?Python 开发 12306 查票神器

    临近年关,不少在外的游子都急着买票回家,但这时候的火车票,总是供不应求的. 我想到了几年前徐峥主演的<人在囧途>,春运期间,一个老板,一个民工,同时都因为买不到火车票而囧态百出,甚至辗转到 ...

最新文章

  1. 2022图神经网络5篇最新的研究综述:双曲/图分类/联邦/等变/异质性
  2. os引导程序boot从扇区拷贝os加载程序loader文件到内存(boot copy kernel to mem in the same method)
  3. WebConfig Authorization 节点
  4. 初学者python笔记(os模块、sys模块)
  5. 在树莓派3B+ 上使用YOLO v3 Tiny进行实时对象检测
  6. Oracle 备份shell,oracle数据库shell备份脚本
  7. 里皮正式告别国足:我尽了最大努力让球队成长
  8. 华三 h3c 交换机RSTP配置
  9. 2017.0713.《计算机组成原理》-汉明码
  10. python opencv 中文路径_解决python cv2.imread 读取中文路径的图片返回为None的问题
  11. mysql升级:rpm包安装升级
  12. JS库之Highlight.js高亮代码
  13. pygame教程:第一课 初始化和主循环
  14. CVE-2015-5254(ActiveMQ反序列化漏洞复现)
  15. 【用Python对全职高手小说分析分词词频词性,小说人物出场次数排序,小说中食物排序,小说人物关系等等】
  16. 佰落暑期java自学记录-9
  17. 痞子衡嵌入式:一表全搜罗常见低功耗广域物联网协议(NB-IoT/eMTC/LoRa/SigFox...)
  18. servicecontroller 无法打开计算机 服务,ServiceController似乎无法停止服务
  19. 介绍一款迷你版win10系统!电脑内存小的用户可入
  20. KMeans聚类 K值的确定以及初始类簇中心点的选取

热门文章

  1. matplotlib多张子图画在一起
  2. 使用onlyoffice让你轻松实现word、ppt、excel在线编辑功能
  3. 苏宁易购:前后端分离架构的落地思考
  4. 年末总结(androidbug)
  5. 第9章 Linux的磁盘管理
  6. 【opencv4.3.0教程】12之图像的加add、减subtract、乘multiply、除divide
  7. 计算机默认登录用户名和密码是什么,Windows7默认管理员账户用户名和密码是什么...
  8. 桌面PDF文件名太长无法删除的问题
  9. 8421拨码开关C语言编程,8052单片机怎样读出8421BCD码拨码开关设定的数值
  10. 【折腾系列—All In One主机】3、 iKuai软路由安装前的设置