欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python数字对应车站_python爬虫查询车站信息

发布时间:2025/3/12 python 36 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python数字对应车站_python爬虫查询车站信息 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

#车站信息查询

import requests

#1.获得url(存取车站信息的url)并读取,根据获得信息的特点去掉无用的信息并转换存储到列表中

url="https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.9090"

txt=requests.get(url).text

#print(txt)

inf=txt[:-2].split("@")[1:] #得到的是存储所有车站信息的列表

#print(inf)

#2.通过循环把列表在进行分割转换成新的列表,取其中一项(车站顺序编号)当做字典的key,其余当作值,存储到新的字典中

stations={}

for record in inf:

rlist=record.split("|")

stations[int(rlist[-1])]={"cname":rlist[1],"id":rlist[2],"qp":rlist[3],"jx":rlist[4]}

#print(stations[0])

#print(stations.get(2848))

#print(stations.values())

#3.判断查询条件是否存在,存在如果唯一则打印并跳出循环,不唯一则显示查询的所有的结果,提供选择,根据选择的信息打印出结果然后跳出循环,不存在则打印提示信息,重新输出

while True:

s1=input("出发站:")

flag=0

result=[]

for station in stations.values():

if s1 in station.values():

#print(station)

result.append(station)

flag=1

if flag:

break

else:

print("没有这个车站!")

print("请重新输入!")

if len(result)==1:

resultId=result[0]["id"]

print("你输入的出发车站是%s,对应的车站ID是%s"%(result[0]["cname"],resultId))

else:

print("你输入的条件比较模糊,请在以下站中进行选择:")

for i in range(len(result)):

print(i+1,result[i]["cname"],result[i]["id"])

sel=int(input("你的选择:"))-1

resultId=result[sel]["id"]

print("你输入的出发车站是%s,对应的车站ID是%s"%(result[sel]["cname"],resultId))

while True:

s2=input("目的站:")

flag2=0

result2=[]

for station in stations.values():

if s2 in station.values():

#print(station)

result2.append(station)

flag2=1

if flag2:

break

else:

print("没有这个车站!")

print("请重新输入!")

if len(result2)==1:

result2Id=result2[0]["id"]

print("你输入的目的车站是%s,对应的车站ID是%s"%(result2[0]["cname"],result2Id))

else:

print("你输入的条件比较模糊,请在以下站中进行选择:")

for i in range(len(result2)):

print(i+1,result2[i]["cname"],result2[i]["id"])

sel2=int(input("你的选择:"))-1

result2Id=result2[sel2]["id"]

print("你输入的目的车站是%s,对应的车站ID是%s"%(result2[sel]["cname"],result2Id))

#生成一条带查询的url(url在浏览器开发者模式查找)

qurl="https://kyfw.12306.cn/otn/leftTicket/queryZ?leftTicketDTO.train_date=2019-01-14&leftTicketDTO.from_station=%s&leftTicketDTO.to_station=%s&purpose_codes=ADULT"

print(qurl %(resultId,result2Id))

总结

以上是生活随笔为你收集整理的python数字对应车站_python爬虫查询车站信息的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。