python实现爬取12306所有站点及其编码信息(附源代码)!

您所在的位置:网站首页 高铁车次名称怎么查询 python实现爬取12306所有站点及其编码信息(附源代码)!

python实现爬取12306所有站点及其编码信息(附源代码)!

2024-03-08 05:22| 来源: 网络整理| 查看: 265

一、思路

1、打开12306.cn 2、ctrl + shift + i(开发者人员工具) 在这里插入图片描述 得到站点信息链接:https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.9028或者https://www.12306.cn/index/script/core/common/station_name_v10037.js; 3、看一下这个链接里面有什么? 在这里插入图片描述 虽然乱码?但不必担心,我们得到了我们需要的东西,python会解决这些问题!!! 接下来,需要爬取这个页面所有的站点名称(station_name)和站点编码(station_code),很明显,这只需要用到requests库和re库即可完成。

二、代码(复制运行即可) import re import json import requests import pandas as pd from pprint import pprint #JS,这个用浏览器打开会呈现一堆看不懂的文字,需要用正则表达式对其解析 url = 'https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.9028' #对网页发送get请求 response = requests.get(url,verify=False) #编写正则表达式 station = re.findall(r'([\u4e00-\u9fa5]+)\|([A-Z]+)',response.text) #字典转化,并打印,(需pip install pprint),输出的字典没有名称,需加上名称“station = ”,再使用 pprint(dict(station),indent=4) #将字典赋给station station = dict(station) #以.csv形式输出 pd.DataFrame(station,index=[0]).to_csv('站点信息.csv',encoding='GB18030') 三、结果

字典形式: 在这里插入图片描述

四、总结

通常爬取站点信息是为了爬取12306车次信息,做余票查询或抢票程序。如果为了研究用途,12306的全部车次信息是非常值得关注的,下一篇将提供这方面的源代码!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3