最终效果图:

样式丑哭了,我毕竟不是前端,宗旨就是练练手,体验微信小程序的开发,以最直接的方式获取12306数据查询火车票。

目录结构:

search1是出发站列表,search2是目的站列表,命名没有太好好想。

车站信息

12306查询页面,打开浏览器开发者工具分析请求,发现各个车站的信息都在这个JS文件中:

当然车站的信息会发生变动,所以最好的方式就是抓取数据,我现在为了方便,直接把数据拷贝过来,就是一大堆字符串:

通过正则截取出目前项目需要的两个东西,如:北京北 VAP

请求信息

12306查询页面,点击查询按钮的时候,它会发送两个请求:

第一个是日志请求,这里不需要,它有什么作用12306知道

第二个才是我们需要的,拷贝它的请求地址,构建我们程序的请求

url中最后的queryC,之前是query的,可能过段时间变为queryD、query0...

又一个变化的地方,也可以说处处皆会变化,毕竟12306不是自己做的,无法掌控,

所以最好还是抓取数据的方式来做,我现在方便直接写死了。

leftTicketDTO.train_date  日期,格式:2016-10-13

leftTicketDTO.from_station  出发站编码,上面那堆车站信息中的,北京北为VAP

leftTicketDTO.to_station  目的站编码,同上

purpose_codes  普通(ADULT)或学生(0X00)

响应信息

参数错误或没给全返回的JSON:{"status":false,"c_url":"leftTicket/queryC","c_name":"CLeftTicketUrl"}

一般正常的格式为:

要是提交的是昨天的日期,则messages中会有消息,但status和httpstatus仍然为true和200。

于是乎对返回结果有了如下判断:

展示信息

先看看data中的有什么东东:

用到的参数,能够确认其作用的:

车次 station_train_code
始发站 start_station_name
终点站 end_station_name
出发站 from_station_name
目的站 to_station_name
出发时间 start_time
目的时间 arrive_time
历时时间 lishi
商务座 swz_num
一等座 zy_num
二等座 ze_num
软卧 rw_num
硬卧 yw_num
软座 rz_num
硬座 yz_num
无座 wz_num
特等座 tz_num

gr_num和qt_num,猜测为高级软卧和其他,gg_num和yb_num就实在想不到了。

需要注意的是,座位的票数超过某个数的返回值是“有”,而低于则返回的是数字,所以在显示数据列表之前还得处理下。

在写程序的时候我发现我有挺多想法想写出来的,可到真正要写博客的时候却想不出要写什么了,悲哀!日后想到在补充吧。

附上源码:http://files.cnblogs.com/files/shousiji/TrainTicket.rar  欢迎拍砖!~

转载于:https://www.cnblogs.com/shousiji/p/5990355.html

微信小程序火车票查询 直取12306数据相关推荐

  1. 微信小程序--火车票查询

    写在最前面 微信小程序自九月份推出内测资格以来,经历了舆论热潮到现在看似冷清,但并不意味着大家不那么关注或者不关注了.我想不管是否有内测资格,只要是感兴趣的开发者已经进入潜心耕耘产品的阶段了,至少是静 ...

  2. 微信小程序--订单查询页面

    微信小程序–订单查询页面 包含功能点: 订单查询 结构:order.wxml <tabs tabList="{{tabList}}" binditemChange=" ...

  3. uni-app云开发的网盘助手微信小程序源码抓取网盘资源引流好助手

    uni-app云开发的网盘助手微信小程序源码抓取网盘资源引流好助手 这是一款uni-app开发的一款网盘小助手小程序源码 该源码主要用于用户输入关键词然后全网抓取百度网盘资源内容 另外呢该小程序还可以 ...

  4. 基于微信小程序公交查询系统设计与实现

    [摘 要]随着互联网的技术的不断更新发展,人们生活节奏也在不断的加快,对于网络的依赖也越来越紧密,尤其是在等公交,经常会错过班次,但又不知道,下次班次几点发车,这样会导致乘客花掉大把时间在等待,如果可 ...

  5. 微信小程序 星座查询

    微信小程序 星座查询 1.界面布局 1. .xml代码 <image class="anime_bg" src="/images/cartoon_2.jpg&quo ...

  6. 微信小程序“校园集市”爬取

    微信小程序"校园集市"爬取 一.前言 ​ 由于课程作业需要用到校园集市上的一些数据,所以要学着怎么爬取微信小程序.原以为只需要像往常的爬虫一样写一下head和requests就可以 ...

  7. 微信小程序|area组件使用的地址数据文件plus

    area组件使用的地址数据文件 前言 1.解析json的地址转换为area.js的格式 2.转换格式的java代码 3.运行结果截图示意 前言 实战篇内容参考: 1.腾讯的全球地址数据文件及Xml-& ...

  8. 微信小程序wx.request请求服务器json数据并渲染到页面

    微信小程序的数据总不能写死吧,肯定是要结合数据库来做数据更新,而小程序数据主要是json数据格式,所以我们可以利用php操作数据库,把数据以json格式数据输出即可.现在给大家讲一下,微信小程序的wx ...

  9. 微信小程序链接后台接口,进行数据交互

    微信小程序链接后台接口,进行数据交互 新手学微信小程序,设计页面还可以,有没有让进行数据交互的时候就不知道怎么弄了,下面就记录一下我是怎么进行交互的 1.登陆微信小程序平台,进入首页,点击开发设置 2 ...

最新文章

  1. Redmine+Apache+SVN+Postfix完整配置指南
  2. 使用NOSQL的MongoDB时建立索引需要注意的几点建议和Explain优化分析
  3. 如何使用robots.txt[摘自网络]
  4. 前端学习(2911):cdn的加速策略
  5. Navicat15安装笔记
  6. Python可视化库matplotlib(基础整理)
  7. 更改数据库管理员sa账户密码
  8. 收藏 | 机器学习中常用的5种回归损失函数
  9. 简单粗暴地理解js原型链--js面向对象编程
  10. pandas导出的csv文件用mysql-workbench导入报错
  11. 同步中心服务器,同步中心以非常慢的速度同步脱机文件 - Windows Server | Microsoft Docs...
  12. react-hooks原理
  13. 桥牌笔记:一定要飞张?
  14. 使用php函数对变量进行比较,PHP:将变量传递给函数,对变量进行处理,然后将其返回...
  15. 计算机毕业设计java+jsp旅游网站(源码+系统+mysql数据库+Lw文档)
  16. shipyard docker集群问题
  17. 722 | Crypto Tech Night第五期分享会,参会通道开放中
  18. Android Settings 中wifi详情页 隐私默认选中设备mac
  19. 梦幻西游手游微信号登陆不上服务器,梦幻西游手游为什么进不去 进不去登陆不上解决方法...
  20. Spfa算法(可以求有负权的图)

热门文章

  1. semantic_slam环境配置
  2. java 判断域密码到期提醒_域帐号密码过期邮件提醒
  3. SpringBoot+Vue实现前后端分离的教务评教系统
  4. b站python弹幕签到_B站弹幕实时效果python
  5. CSDN文章点赞、收藏、评论后到底发生了什么?简要分析HTTP交互机制
  6. 拼多多怎么调整后台数据|聚创卓跃
  7. 生物学中的云计算和大数据
  8. 掌握“盘带技术”——比较磁盘存储和磁带存储
  9. 拾色器 插件 Farbtastic
  10. 解决阿里云盘分享文件数量太多而无法分享的问题