使用python爬取12306上面所有车次数据
#下载所有的车次数据 保存为 train_list.txt文件
def getTrain_list():requests.adapters.DEFAULT_RETRIES = 5response = requests.get(train_list_url, stream=True,verify=False)status = response.status_codeif status == 200:with open('train_list.txt', 'wb') as of:for chunk in response.iter_content(chunk_size=102400):if chunk:of.write(chunk)#分析train_list.txt文件 得出火车 出发站到终点站的数据
def trainListStartToEnd():global station_start_end_setwith open('train_list.txt','rb') as of:text=of.readline()tt=text.decode("utf-8")ss=tt.replace("},{","}\n{").replace("2017-","\n").replace("[","\n").split("\n")m_list=list()for s in ss:pattern = re.compile(r'\((\w+-\w+)\)')match = pattern.search(s)if match:m_list.append(match.group(1))station_start_end_set=set(m_list)
#利用出发站到终点站 爬取期间的列车数据
def getTrainNoList(back_date,train_date,from_station,from_station_name,to_station,to_station_name):post_data= {'back_train_date':back_date,'_json_att':"",'flag':'dc','leftTicketDTO.from_station':from_station,'leftTicketDTO.to_station':to_station,'leftTicketDTO.from_station_name':from_station_name,'leftTicketDTO.to_station_name':to_station_name,'leftTicketDTO.train_date':train_date,'pre_step_flag':'index','purpose_code':'ADULT'}init_resp=requests.post(init_url,data=post_data,headers=HEADERS,allow_redirects=True,verify=False)cookies=init_resp.cookiescookies.set('_jc_save_fromStation', from_station_name+','+from_station, domain='kyfw.12306.cn', path='/')cookies.set('_jc_save_toStation', to_station_name+','+to_station, domain='kyfw.12306.cn', path='/')cookies.set('_jc_save_fromDate', train_date, domain='kyfw.12306.cn', path='/')cookies.set('_jc_save_toDate', back_date, domain='kyfw.12306.cn', path='/')cookies.set('_jc_save_wfdc_flag', 'dc', domain='kyfw.12306.cn', path='/')url=query_url+"leftTicketDTO.train_date="+train_date+"&leftTicketDTO.from_station="+from_station+"&leftTicketDTO.to_station="+to_station+"&purpose_codes=ADULT"try:response = requests.get(url, headers=HEADERS, allow_redirects=True,cookies=cookies,verify=False,timeout=10)data=""if response.status_code==200:data=response.contentdata=data.decode("UTF-8")return data,cookiesexcept Exception as err:logger.exception('getTrainNoList error 获取车次列表错误 日期'+train_date+'从'+from_station_name+'到'+to_station_name+' :%s',err)return None,None
使用python爬取12306上面所有车次数据相关推荐
- python爬取12306实现按车次查询余票
前言 本篇博客想写很久了,以前抢票时不知道你们有没有这种情况,比如你想买郑州到长春k926这个车次的票,但是车票买完了抢不到票,于是我就想多买几站看没有票,其实也贵不了多少.也就是说我想多买几站买这个 ...
- python + selenium 爬取12306所有车站车次数据
python + selenium 驱动谷歌浏览器 实现模拟人工爬取车次数据,特别注意 谷歌版本和驱动器版本. 驱动获取地址:https://blog.csdn.net/weixin_44186072 ...
- 2021最新 python爬取12306列车信息自动抢票并自动识别验证码(三)购票篇
项目前言 tiebanggg又来更新了,项目--[12306-tiebanggg-master]注:本项目仅供学习研究,如若侵犯到贵公司权益请联系我第一时间进行删除:切忌用于一切非法途径,否则后果自行 ...
- 2021最新python爬取12306列车信息自动抢票并自动识别验证码
项目描述 项目前言 tiebanggg又来更新了,项目--[12306-tiebanggg-master]注:本项目仅供学习研究,如若侵犯到贵公司权益请联系我第一时间进行删除:切忌用于一切非法途径,否 ...
- python爬取12306列车信息自动抢票并自动识别验证码(一)列车数据获取篇
项目前言 自学python差不多有一年半载了,这两天利用在甲方公司搬砖空闲之余写了个小项目--[12306-tiebanggg-master].注:本项目仅供学习研究,如若侵犯到贵公司权益请联系我第一 ...
- python爬取12306列车信息自动抢票并自动识别验证码(二)selenium登录验证篇
项目前言 自学python差不多有一年半载了,这两天利用在甲方公司搬砖空闲之余写了个小项目--[12306-tiebanggg-master]注:本项目仅供学习研究,如若侵犯到贵公司权益请联系我第一时 ...
- python爬取火车票网的时刻表数据
python爬取火车票网的时刻表数据 导包 import re,requests,datetime,time,json from prettytable import PrettyTable from ...
- 练习:使用Python爬取COVID-19疫情国内当日数据
练习:使用Python爬取COVID-19疫情国内当日数据 推荐公众号:数据酷客 (里面有超详细的教程) 代码来源数据酷客公众号教程 URL它是Uniform Resource Locator的缩写, ...
- python爬取股票信息_利用Python爬取网易上证所有股票数据(代码
利用Python爬取网易上证所有股票数据(代码 发布时间:2018-04-14 17:30, 浏览次数:1261 , 标签: Python import urllib.request import r ...
最新文章
- 获取app当前可用的剩余内存
- 实测:xml与json速度约差4倍
- 利用Matlab求解线性规划问题
- suList() 和 asList()
- select read write
- 【转】JPA、Hibernate和Mybatis区别和总结
- java最新版怎么安装_Java JDK 最新版本安装与环境配置
- 华硕笔记本r414u怎么安装键盘_华硕笔记本键盘灯怎么开
- linux环境下的多线程编程(一)
- 如何优雅地过滤敏感词
- Spring中使用aop操作需要用到的aspectjweaver-1.8.7.jar包
- vue 3 开发环境搭建
- arduino 土壤温湿度传感器_arduino测量土壤湿度自动浇水提醒 - 全文
- CentOS 7 - Securing OpenSSH(一)
- 【一、视频处理】FPGA驱动OV7725摄像头模块
- 做市商交易策略-期货
- idea 设置eplice 前进后退快捷键
- 使用windows自带虚拟机---Hyper-V 管理器
- 酷狗免费下载歌曲(网易云同样适用)
- oracle数据库基本命令使用汇总