python爬虫---12306获取列车座位信息
主要核心代码:
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获取列车座位信息相关推荐
- Python爬虫——12306网站车次信息
Python爬虫--12306网站车次信息 相信每一个人都听说过谷歌.百度等浏览器,我们在在输入栏中输入我们想要的关键字,便会出现与我们输入关键字有关的网页.那么这些数据时是怎么来的呢?其实这跟网络爬 ...
- python爬虫(14)获取淘宝MM个人信息及照片(中)
python爬虫(14)获取淘宝MM个人信息及照片(中) python爬虫(14)获取淘宝MM个人信息及照片(上) python爬虫(14)获取淘宝MM个人信息及照片(下)(windows版本) 在上 ...
- python爬虫(14)获取淘宝MM个人信息及照片(上)
python爬虫(14)获取淘宝MM个人信息及照片(上) python爬虫(14)获取淘宝MM个人信息及照片(中) python爬虫(14)获取淘宝MM个人信息及照片(下)(windows版本) 网上 ...
- python爬虫——12306查询车次
python爬虫--12306查询车次 使用抓包工具 中文地名转地名参数代码 使用12306提供的查询api进行查询 实现完整代码 使用抓包工具 首先登陆12306 点击查询:同时使用network抓 ...
- 深圳python爬虫培训南山科技园钽电容回收_记一次python 爬虫爬取深圳租房信息的过程及遇到的问题...
为了分析深圳市所有长租.短租公寓的信息,爬取了某租房公寓网站上深圳区域所有在租公寓信息,以下记录了爬取过程以及爬取过程中遇到的问题: 爬取代码: import requests from reques ...
- python解决租房问题_记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
为了分析深圳市所有长租.短租公寓的信息,爬取了某租房公寓网站上深圳区域所有在租公寓信息,以下记录了爬取过程以及爬取过程中遇到的问题: 爬取代码: import requests from reques ...
- python 自动获取所有设备信息-使用Python脚本来获取Cisco设备信息的示例
今天发现一个使用python写的管理cisco设备的小框架tratto,可以用来批量执行命令. 下载后主要有3个文件: Systems.py 定义了一些不同设备的操作系统及其常见命令. Connect ...
- linux下通过Python代码实现获取硬件接口信息
linux下通过Python代码实现获取硬件接口信息 1.CPU架构 Python中,platform模块给提供了很多方法去获取操作系统的信息. touch cpu.py vi cpu.py #编辑内 ...
- Python爬虫实战——获取电影影评
Python爬虫实战--获取电影影评 前言 第三方库的安装 示例代码 效果演示 结尾 前言 使用Python爬取指定电影的影评, 注意:本文仅用于学习交流,禁止用于盈利或侵权行为. 操作系统:wind ...
最新文章
- 设置(TableViewController)通用框架
- 机房收费系统——需求分析
- 浅谈 Vue 项目优化
- python中开关_pyq中的开关按钮
- python hookapi_pytest文档70-Hook钩子函数完整API总结​
- 影院平台搭建 - (6)一个靠谱的视频播放方案的感想
- 事件内核对象 CreateEvent
- java final一点
- 通俗易懂的信息熵与信息增益(IE, Information Entropy; IG, Information Gain)
- 文件间调用变量(extern,include)[转]
- 读史可以明智_为什么拥抱传统是明智的
- 可以用于云原生中Skywalking框架原理你真的懂吗
- Python数据挖掘指南
- linux如何设置mac快捷键,Mac与Linux常用快捷键汇总
- Jixipix Watercolor Studio Pro for Mac(照片转水彩画特效工具)
- 使用excel画数据曲线
- 解决POI读取Excel百万级内存溢出问题
- GitLab: API is not accessible的错误解决
- Shiro认证及加盐加密
- cerebro(cerebrocyst)
热门文章
- H5Stream杂记-HTML中引入RTSP/RTMP源视频初学
- Flash鼠绘入门第十课:绘制娇艳郁金香
- raid卡缓存对硬盘性能_服务器RAID配置方法大全
- CCIE一年后的心语-------寄WOLF实验室的兄弟
- 无为电缆工业学校计算机,芜湖电缆工业学校(无为县职教中心)2020年宿舍条件怎么样?...
- 治愈系书单|林曦《只生欢喜不生愁》
- Spring Cloud 五大组件
- 咸鱼 转转,苹果产品真伪验证
- 使用Python+selenium 视频及相关数据
- java连接mongo数据库,并执行db.runCommand命令