主要核心代码:
Get_CityCode.py

import requestsdef get_city():target = "https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.9100"req = requests.get(url=target)station_names = req.textstation_names_new = station_names.replace("var station_names ='", "").split("@")del station_names_new[0]station_names_new[-1] = station_names_new[-1].replace("';", "")number = len(station_names_new)for i in range(0, number, 1):station_names_new[i] = station_names_new[i].split("|")station = {}for j in range(0, number, 1):station[station_names_new[j][1]] = station_names_new[j][2]return stationif __name__ == "__main__":print(get_city()['郑州'])

Get_TicketInfo.py

import requests
import Get_URL
import re
import Get_CityCode
from prettytable import PrettyTabledef city_code_name():"""字典键值互换前提:键值唯一返回互换后的字典"""city_code = Get_CityCode.get_city().copy()code_name = dict(zip(city_code.values(), city_code.keys()))return code_namedef get_ticket_info():"""re.sub(pattern, replace, string, count=0, flags=0)pattern : 正则中的模式字符串。replace : 替换的字符串,也可为一个函数。string : 要被查找替换的原始字符串。count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。flags : 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。"""data = requests.get(url=Get_URL.geturl())data1 = re.findall("\[.*\]", data.text)'''data1是一个列表,格式为['["1","2","3"]']'''data2 = data1[0]"""data2是个字符串,晕死!!!"""data3 = data2.replace("[", "").replace("]", "").split(",")"""split 返回一个元组"""number = len(data3)# 车次数量"""format:*|预订|*|车次|*|*|起始站|终点站|出发时间|到达时间|历时|*|*|*|*|*|*|*|*|*||高级软卧||软卧一等卧|||无座||0|    |2|   |4,5 |                                    |11-19|            20|  22 24 25 27 硬卧二等座|硬座|二等座|一等座|商务座特等座|动卧|*|*|*|*|*|34 35 36 37 38"""del_list = [0, 2, 4, 5, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 24, 25, 27, 34, 35, 36, 37, 38]del_number = len(del_list)c = 0for x in range(del_number):del_list[x] = del_list[x] - cc = c + 1for i in range(number):data3[i] = data3[i].split("|")for j in range(del_number):del data3[i][del_list[j]]# 在迭代的过程中每删除一个元素,接下来将要删除的元素下标要减一,注意!"""format:|预订|车次|起始站|终点站|出发时间|到达时间|历时|高级软卧|软卧一等卧|无座|硬卧二等座|硬座|二等座|一等座|商务座特等座|动卧|Senior soft sleeper|soft sleeper first bedroom|no seat|hard sleeper second seat|hard seat|second class seat|first class seat|business seat special seat|moving bedroom|"""finally_data = data3train_numbers = len(finally_data)start_station_key = []       # 起始站to_station_key = []          # 终点站start_time = []             # 出发时间to_time = []                # 到达时间cost_time = []              # 历时train_code = []             # 车次senior_soft = []              # 高级软卧soft_first = []               # 软卧一等卧no_seat = []                  # 无座hard_second = []              # 硬卧二等座hard_seat = []                # 硬座second_seat = []              # 二等座first_seat = []               # 一等座business_seat = []            # 商务座moving_sleep = []             # 动卧tips = []                       # 提示信息for i in range(train_numbers):tips.append(finally_data[i][0])train_code.append(finally_data[i][1])start_station_key.append(city_code_name()[finally_data[i][2]])to_station_key.append(city_code_name()[finally_data[i][3]])start_time.append(finally_data[i][4])to_time.append(finally_data[i][5])cost_time.append(finally_data[i][6])senior_soft.append(finally_data[i][7])soft_first.append(finally_data[i][8])no_seat.append(finally_data[i][9])hard_second.append(finally_data[i][10])hard_seat.append(finally_data[i][11])second_seat.append(finally_data[i][12])first_seat.append(finally_data[i][13])business_seat.append(finally_data[i][14])moving_sleep.append(finally_data[i][15])"""输出格式:车次      出发站     到达站     出发时间    到达时间    历时      商务座 一等座 二等座 高级软卧    软卧   动卧  硬卧   硬座 无座   备注  """table = PrettyTable()"""prettytable库:快捷创建表格并打印输出;安装:pip install prettytable导入:from prettytable import PrettyTable创建:x = PrettyTable()Github 地址:https://github.com/dprince/python-prettytable"""table.add_column("车次", train_code)table.add_column("出发站", start_station_key)table.add_column("到达站", to_station_key)table.add_column("出发时间", start_time)table.add_column("到达时间", to_time)table.add_column("历时", cost_time)table.add_column("商务座", business_seat)table.add_column("一等座", first_seat)table.add_column("二等座", second_seat)table.add_column("高级软卧", senior_soft)table.add_column("软卧", soft_first)table.add_column("动卧", moving_sleep)table.add_column("硬卧", hard_second)table.add_column("硬座", hard_seat)table.add_column("无座", no_seat)table.add_column("备注", tips)print(table)

写到这里吧,GUI部分就不上传了。

python爬虫---12306获取列车座位信息相关推荐

  1. Python爬虫——12306网站车次信息

    Python爬虫--12306网站车次信息 相信每一个人都听说过谷歌.百度等浏览器,我们在在输入栏中输入我们想要的关键字,便会出现与我们输入关键字有关的网页.那么这些数据时是怎么来的呢?其实这跟网络爬 ...

  2. python爬虫(14)获取淘宝MM个人信息及照片(中)

    python爬虫(14)获取淘宝MM个人信息及照片(中) python爬虫(14)获取淘宝MM个人信息及照片(上) python爬虫(14)获取淘宝MM个人信息及照片(下)(windows版本) 在上 ...

  3. python爬虫(14)获取淘宝MM个人信息及照片(上)

    python爬虫(14)获取淘宝MM个人信息及照片(上) python爬虫(14)获取淘宝MM个人信息及照片(中) python爬虫(14)获取淘宝MM个人信息及照片(下)(windows版本) 网上 ...

  4. python爬虫——12306查询车次

    python爬虫--12306查询车次 使用抓包工具 中文地名转地名参数代码 使用12306提供的查询api进行查询 实现完整代码 使用抓包工具 首先登陆12306 点击查询:同时使用network抓 ...

  5. 深圳python爬虫培训南山科技园钽电容回收_记一次python 爬虫爬取深圳租房信息的过程及遇到的问题...

    为了分析深圳市所有长租.短租公寓的信息,爬取了某租房公寓网站上深圳区域所有在租公寓信息,以下记录了爬取过程以及爬取过程中遇到的问题: 爬取代码: import requests from reques ...

  6. python解决租房问题_记一次python 爬虫爬取深圳租房信息的过程及遇到的问题

    为了分析深圳市所有长租.短租公寓的信息,爬取了某租房公寓网站上深圳区域所有在租公寓信息,以下记录了爬取过程以及爬取过程中遇到的问题: 爬取代码: import requests from reques ...

  7. python 自动获取所有设备信息-使用Python脚本来获取Cisco设备信息的示例

    今天发现一个使用python写的管理cisco设备的小框架tratto,可以用来批量执行命令. 下载后主要有3个文件: Systems.py 定义了一些不同设备的操作系统及其常见命令. Connect ...

  8. linux下通过Python代码实现获取硬件接口信息

    linux下通过Python代码实现获取硬件接口信息 1.CPU架构 Python中,platform模块给提供了很多方法去获取操作系统的信息. touch cpu.py vi cpu.py #编辑内 ...

  9. Python爬虫实战——获取电影影评

    Python爬虫实战--获取电影影评 前言 第三方库的安装 示例代码 效果演示 结尾 前言 使用Python爬取指定电影的影评, 注意:本文仅用于学习交流,禁止用于盈利或侵权行为. 操作系统:wind ...

最新文章

  1. 设置(TableViewController)通用框架
  2. 机房收费系统——需求分析
  3. 浅谈 Vue 项目优化
  4. python中开关_pyq中的开关按钮
  5. python hookapi_pytest文档70-Hook钩子函数完整API总结​
  6. 影院平台搭建 - (6)一个靠谱的视频播放方案的感想
  7. 事件内核对象 CreateEvent
  8. java final一点
  9. 通俗易懂的信息熵与信息增益(IE, Information Entropy; IG, Information Gain)
  10. 文件间调用变量(extern,include)[转]
  11. 读史可以明智_为什么拥抱传统是明智的
  12. 可以用于云原生中Skywalking框架原理你真的懂吗
  13. Python数据挖掘指南
  14. linux如何设置mac快捷键,Mac与Linux常用快捷键汇总
  15. Jixipix Watercolor Studio Pro for Mac(照片转水彩画特效工具)
  16. 使用excel画数据曲线
  17. 解决POI读取Excel百万级内存溢出问题
  18. GitLab: API is not accessible的错误解决
  19. Shiro认证及加盐加密
  20. cerebro(cerebrocyst)

热门文章

  1. H5Stream杂记-HTML中引入RTSP/RTMP源视频初学
  2. Flash鼠绘入门第十课:绘制娇艳郁金香
  3. raid卡缓存对硬盘性能_服务器RAID配置方法大全
  4. CCIE一年后的心语-------寄WOLF实验室的兄弟
  5. 无为电缆工业学校计算机,芜湖电缆工业学校(无为县职教中心)2020年宿舍条件怎么样?...
  6. 治愈系书单|林曦《只生欢喜不生愁》
  7. Spring Cloud 五大组件
  8. 咸鱼 转转,苹果产品真伪验证
  9. 使用Python+selenium 视频及相关数据
  10. java连接mongo数据库,并执行db.runCommand命令