广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python爬虫之12306网站--车站
  • 829
分享到

python爬虫之12306网站--车站

爬虫车站网站 2023-01-30 23:01:16 829人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

python爬虫查询车站信息 目录: 1.找到要查询的url 2.对信息进行分析 3.对信息进行处理 python爬虫查询全拼相同的车站 目录: 1.找到要查询的url 2.对信息进行分析 3.对信息进行处理 1.找到车站信息的url

python爬虫查询车站信息

目录:

1.找到要查询的url

2.对信息进行分析

3.对信息进行处理

python爬虫查询全拼相同的车站

目录:

1.找到要查询的url

2.对信息进行分析

3.对信息进行处理

1.找到车站信息的url

2.分析车站信息,发现每个车站信息以"@"分隔

车站信息查询

#车站信息查询
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))

运行效果如下:

 

2.查询出所有全拼相同的所有车站名称 
#python 查询出所有全拼相同的所有车站名称 
import requests
url="https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.9090"
txt=requests.get(url).text
inf=txt[:-2].split("@")[1:]
stations={}
for record in inf:
    rlist=record.split("|")
    stations[int(rlist[-1])]={"cname":rlist[1],"id":rlist[2],"qp":rlist[3],"jx":rlist[4]}

pyin=[]
for station in stations.values():       #把获得的信息所有的"qp"所对应的值全部放到列表中(pyin)
        pyin.append(station["qp"])
npy=list(set(pyin))     #利用集合的去重特性对列表进行去掉重复项
npy.sort()      #对列表进行排序
c={}
for station in stations.values():       #分别把所有的全拼当作键,值加入到新的字典当中
    c[station["qp"]]=c.get(station["qp"],0)+1
#print(c)
c2=[]
for k,v in c.items():   #判断字典的值是否大于1,大于则说明存在全拼相同的车站名
    if v>1:
        c2.append(k)    #把满足条件的所有的全拼加入到新的列表中
c2.sort()       
#print(c2)  
for p in c2:            #遍历列表,打印出符合条件的车站
    print(p,end=":")
    for station in stations.values():   
        if p==station["qp"]:
            print(station["cname"])

运行效果如下:

 

--结束END--

本文标题: python爬虫之12306网站--车站

本文链接: https://www.lsjlt.com/news/180907.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python爬虫之12306网站--车站
    python爬虫查询车站信息 目录: 1.找到要查询的url 2.对信息进行分析 3.对信息进行处理 python爬虫查询全拼相同的车站 目录: 1.找到要查询的url 2.对信息进行分析 3.对信息进行处理 1.找到车站信息的url ...
    99+
    2023-01-30
    爬虫 车站 网站
  • python爬虫之12306网站--火车
    python爬虫之12306网站--火车票信息查询 思路: 1.火车票信息查询是基于车站信息查询,先完成车站信息查询,然后根据车站信息查询生成的url地址去查询当前已知出发站和目的站的所有车次车票信息 2.json文件存储当前从出发站到目...
    99+
    2023-01-30
    爬虫 火车 网站
  • python爬虫:爬取网站视频
    python爬取百思不得姐网站视频:http://www.budejie.com/video/新建一个py文件,代码如下:#!/usr/bin/python # -*- coding: UTF-8 -*- import urllib,re...
    99+
    2023-01-31
    爬虫 视频 网站
  • Python爬虫爬取网站图片
    此次python3主要用requests,解析图片网址主要用beautiful soup,可以基本完成爬取图片功能, 爬虫这个当然大多数人入门都是爬美女图片,我当然也不落俗套,首先也...
    99+
    2022-11-12
  • python爬虫之小说网站--下载小说(
    python爬虫之小说网站--下载小说(正则表达式) 思路: 1.找到要下载的小说首页,打开网页源代码进行分析(例:https://www.kanunu8.com/files/old/2011/2447.html) 2.分析自己要得到的内...
    99+
    2023-01-30
    爬虫 小说网站 小说
  • Python爬虫实战之用selenium爬取某旅游网站
    目录一、selenium实战二、打开艺龙网三、精确目标四、成功结语一、selenium实战 这里我们只会用到很少的selenium语法,我这里就不补充别的用法了,以实战为目的 二、打开艺龙网 可以直接点击这里进入:艺...
    99+
    2022-06-02
    Python selenium爬取网站 python爬虫
  • Python爬虫之爬取最新更新的小说网站
    目录一、引言二、关于相关访问请求及应答报文2.1、百度搜索请求2.2、百度返回搜索结果2.3、小说网站关于最新更新的展现及html报文格式三、实现思路及代码3.1、根据url获取网站...
    99+
    2022-11-12
  • python爬虫爬网站的视频和图片
    环境:centos6.5 python2.6.6   http://www.budejie.com/( 纯属测试,并无恶意 )网站分析:我们点视频按钮 可以看到url是:http://www.budejie.com/video/接着我们点开...
    99+
    2023-01-31
    爬虫 图片 网站
  • 如何用Python爬虫爬取美剧网站
    如何用Python爬虫爬取美剧网站,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。爬虫爬取美剧网站!【前言】一直有爱看美剧的习惯,一方面锻炼一下英语听力,一方面打...
    99+
    2023-06-02
  • Python爬虫之自动爬取某车之家各车销售数据
    目录一、目标网页分析二、数据请求三、数据解析四、数据存储五、采集结果预览一、目标网页分析 目标网站是某车之家关于品牌汽车车型的口碑模块相关数据,比如我们演示的案例奥迪Q5L的口碑页面...
    99+
    2022-11-12
  • python中如何爬取汽车之家网站上的图片
    这篇文章主要介绍了python中如何爬取汽车之家网站上的图片,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python的数据类型有哪些python的数据类型:1. 数字类型,...
    99+
    2023-06-14
  • Python爬虫实例爬取网站搞笑段子
    众所周知,python是写爬虫的利器,今天作者用python写一个小爬虫爬下一个段子网站的众多段子。 目标段子网站为“http://ishuo.cn/”,我们先分析其下段子的所在子页的url特点,可以轻易发...
    99+
    2022-06-04
    爬虫 段子 实例
  • 如何利用Python爬虫爬取网站音乐
    小编给大家分享一下如何利用Python爬虫爬取网站音乐,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体实现引入发送网络请求的第三方库import re...
    99+
    2023-06-15
  • 如何使用Python爬虫爬取网站图片
    这篇文章主要介绍了如何使用Python爬虫爬取网站图片,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。此次python3主要用requests,解析图片网址主要用beautif...
    99+
    2023-06-22
  • python之网络爬虫
    一、演绎自已的北爱         踏上北漂的航班,开始演奏了我自已的北京爱情故事二、爬虫11、网络爬虫的思路首先:指定一个url,然后打开这个url地址,读其中的内容。其次:从读取的内容中过滤关键字;这一步是关键,可以通过查看源代码的方式...
    99+
    2023-01-31
    爬虫 网络 python
  • Python爬虫爬取美剧网站的实现代码
    一直有爱看美剧的习惯,一方面锻炼一下英语听力,一方面打发一下时间。之前是能在视频网站上面在线看的,可是自从广电总局的限制令之后,进口的美剧英剧等貌似就不在像以前一样同步更新了。但是,作为一个宅diao的我又...
    99+
    2022-06-04
    爬虫 美剧 代码
  • 网站怎么阻止网络爬虫
    这篇文章主要为大家展示了“网站怎么阻止网络爬虫”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“网站怎么阻止网络爬虫”这篇文章吧。两种主要方法可以阻止爬虫:1.屏蔽它的 IP 地址。收集爬虫的所有 ...
    99+
    2023-06-20
  • 使用Python爬虫怎么避免频繁爬取网站
    这期内容当中小编将会给大家带来有关使用Python爬虫怎么避免频繁爬取网站,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型...
    99+
    2023-06-15
  • 怎么应对网站反爬虫
    这篇文章给大家分享的是有关怎么应对网站反爬虫的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、IP代理对于IP代理,各个语言的Native Request API都提供的IP代理响应的API, 需要解决的主要就是...
    99+
    2023-06-15
  • python解决网站的反爬虫策略总结
    本文详细介绍了网站的反爬虫策略,在这里把我写爬虫以来遇到的各种反爬虫策略和应对的方法总结一下。 从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分。这里我们只讨论数据采集部分。 一般网站从三个方面反爬...
    99+
    2022-06-04
    爬虫 策略 网站
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作