现在稍微大型一点的网站都是走接口,分布式部署,三层架构等等的。

既然要做接口,首先就需要抓取接口服务器已经入参;

Chrome浏览器的F12功能就凸显出来了,我们先看看12306是如何来查询火车票信息的。打开浏览器开发者工具,切换到network页面,然后在12306选择广州-长沙,点击查询;

可以看到station_name.js英文稍微溜一点的,都能猜测到这个是火车站站点名称。好吧,我们复制全路径,然后在浏览器中打开,如下图:

果然我们看到了帝都是排名第一的,并且每个站点以@分隔,站点详细信息以|切割;例如;

@bjb|北京北|VAP|beijingbei|bjb|0

小写的英文是用来快速检索的,有时候我们在框里面输入拼音就能自动化检索到所有同名的火车站信息。大写的VAP是标识符,用来标准每个站点的,因为全国存在很多拼音同名的城市(szb 可以是深圳北 也可以是苏州北),铁老大出了如此的招数。

得到了url,https协议,那么采用urllib2的库手动写一个get方法;

然后根据get方法,服务器返回的数据,我们还需要写一个解析的方法;根据地名来解析对应的城市code编码,如下;

城市编码已经获取出来,那么接下来就是查询车次,鱼票等等的数据,我们刷新一个12306网页,抓取网络信息看看有什么信息吧;

我们点击一下这个红色的链接查看请求信息吧(红色是入参);

切入到response页面,查看服务器返回数据,原来是json格式的;

查看数据,跟字典很像啊,而且还有列表,字典嵌套字典,列表嵌套字典,复杂吗?那就写一个解析函数来慢慢解析呗,一层层的剥开你的心。。。。。。

代码如下:

最后我们需要拼接参数地址,

python获取12306火车票_Python接口获取12306火车票信息相关推荐

  1. Python爬虫:百度翻译接口获取翻译结果

    分析百度翻译接口,使用python获取翻译结果 目标:获取百度翻译结果 工具:chrome/firefox浏览器.pychram.python3.7 模块:requests.re.execjs 开始分 ...

  2. python自动化测试教程百度云盘_Python接口自动化测试框架实战视频教程百度云下载...

    主流的Fiddler.Requests.Unittest.Mock等接口测试工具/框架应用 进阶自动化框架设计开发 课程目录: 1-1 接口自动化测试从基础到框架-导学 1-2 接口基础知识回顾 1- ...

  3. python爬火车票_python爬取12306火车余票程序(一)

    首先说一下大体的流程,简单的流程图如下: 1.获取URL 打开12306余票查询的 网页链接,浏览器(我用的chrome)按F12来分析请求.输入要查询的起始地点和时间后点击查询,可以看到右侧抓到的链 ...

  4. python测试自动化封装_python接口自动化学习笔记(封装获取测试数据方法)

    本篇文章是接于python接口自动化学习笔记(封装方法用于读取excel) 后的拓展,讲解在封装完成excel的数据读取代码后,如何在data层进行使用 首先,我准备了这样一个excel表格用以存储测 ...

  5. python调用api接口获取天气数据_python 接口实战--天气API

    1.接口地址: 网页请求: 将结果拷贝到bjson中,格式化为json的格式. 在python中实现天气测试,代码实现. import requests    导入requests库 from url ...

  6. python获取状态码_Python 如何获取接口返回的http状态码

    使用request 模块得到返回值,然后再利用status_code属性获取http响应的状态码. 示例代码: import requests import json url = 'http://de ...

  7. python处理金融数据_Python之获取与简单处理金融数据

    Python的功能不可以说不大,在金融数据分析里面有着很方便的应用.本篇文章给大家分享的内容是Python之获取与简单处理金融数据,有着一定的参考价值,有需要的朋友可以参考一下 1.数据获取panda ...

  8. python 获取方法名_python 动态获取当前运行的类名和函数名的方法

    一.使用内置方法和修饰器方法获取类名.函数名 python中获取函数名的情况分为内部.外部,从外部的情况好获取,使用指向函数的对象,然后用__name__属性 复制代码代码如下: def a():pa ...

  9. python获取月份字符串_python 正则表达式获取字符串中所有的日期和时间

    提取日期前的处理 1.处理文本数据的日期格式统一化 text = "2015年8月31日,衢州元立金属制品有限公司仓储公司(以下简称元立仓储公司)成品仓库发生一起物体打击事故,造成直接经济损 ...

  10. python流量实时统计_Python实现获取nginx服务器ip及流量统计信息功能示例

    本文实例讲述了Python实现获取nginx服务器ip及流量统计信息功能.分享给大家供大家参考,具体如下: #!/usr/bin/python #coding=utf8 log_file = &quo ...

最新文章

  1. 随机森林RandomForest回归生物标记预测时间序列
  2. JSON简介以及用法汇总
  3. 计算机专业文档写作课件,计算机专业论文写作的方法.ppt
  4. python的官方网站地址是什么-python赋值和地址
  5. android适配器持有者模式
  6. servlet获取相对路径 绝对路径
  7. ue4模型导出_MAYA动画导出以及导入UE4的方式、方法
  8. c语言中结构体类型只有,C语言中main()函数不要返回结构体类型(求助)
  9. 前端中心化管理API使用说明
  10. C++ Primer Plus 读书笔记(第8、9章)
  11. jQuery中eq与get的区别(整理)
  12. tcp发送方的发送速度由接收方给出的接收窗口决定_TCP协议的详解
  13. addEventListener监听
  14. css table中设置tr行间距
  15. vue使用阿里巴巴矢量图标库
  16. 编辑PDF文档无需购买会员;流失与版式分别是什么,PDF与OFD又有什么区别
  17. flask基础根据知了课堂整理
  18. WebService专题(二)-WebService原理
  19. python怎么利用数据成像_使用Python对大脑成像数据进行可视化分析
  20. 第五代TTS语音芯片SYN8086性能再突破

热门文章

  1. 微软拼音清除自定义短语的方法
  2. camisetas de futbol baratas carrera
  3. cuba_认识CLI for CUBA平台
  4. 伊利诺伊大学厄本那 香槟分校计算机科学,美国伊利诺伊大学厄本那香槟分校专业设置...
  5. UGUI-- Canvas Scaler 分辨率自适应组件
  6. 百度一键Root授权管理完美卸载解决方案
  7. Red5 支持https和rtmps
  8. CSDN博客编写快捷键
  9. python爬虫 | 爬取巨潮资讯上的上市公司招股说明书
  10. 新闻 - 被遗忘的“活化石”:BBS没落中求生