Python爬取12306车次信息代码详解

 更新时间:2020年08月12日 11:49:53   作者:悄悄成长  
这篇文章主要介绍了Python爬取12306车次信息代码详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

详情查看下面的代码:

如果被识别就要添加一个cookie如果没有被识别的话就要一个user—agent就好了。如果出现乱码就设置编码格式为utf-8

#静态的数据一般在elements中(复制文字到sources按ctrl+f搜索。找到的为静态),而动态去network中去寻找相关的信息
import requests
import re
def send_request():
  headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'
        ,'Cookie':'_uab_collina=159618052151589201474313; JSESSIONID=D33C89D8BEC6A692C79CFA69FC0B0D29; BIGipServerotn=233832970.24610.0000; BIGipServerpool_passport=216859146.50215.0000; RAIL_EXPIRATION=1596443951465; RAIL_DEVICEID=nMo94O2Z21cXLblW7otLoxUZ_LP9Q01PYj_I89OqU6MqjxyX9814Jc3CH5TNwgBVJqnBaBG8OGiBWo2QtNcu5wVu-asNk6YLa49g0fMwVp03XFJQ-GkhHYHcqIgUd-nqQB_VEdWH1Om_D2yAgIu8QcEavt02pmH5; route=c5c62a339e7744272a54643b3be5bf64; _jc_save_fromStation=%u5317%u4EAC%2CBJP; _jc_save_toStation=%u5929%u6D25%2CTJP; _jc_save_fromDate=2020-07-31; _jc_save_toDate=2020-07-31; _jc_save_wfdc_flag=dc'}#创建头部信息
  url='https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=2020-07-31&leftTicketDTO.from_station=BJP&leftTicketDTO.to_station=TJP&purpose_codes=ADULT'
  #设置编码格式。防止乱码
  resp=requests.get(url,headers=headers)
  resp.encoding='utf-8'
  return resp

#解析数据
#{}是字典。根据key获取值。
def parse_json(resp,city):
  json_ticket=resp.json()#将相应的数据转换为json
  data_list=json_ticket['data']['result']#得到车次的列表
  lst=[]#列表
  for item in data_list:
    #遍历车次信息进行分割
    d=item.split('|')
    lst.append([d[3],city[d[6]],city[d[7]],d[31],d[30],d[13]])
  return lst
'''
d[3]从列表中获取索引为3的表示车次
d[6]查询起始站
d[7]查询到达站
d[31]一等座
d[30]表示二等座
d[13]表示出行时间'''
#获得station_name的信息
def get_city():
  url='https://kyfw.12306.cn/otn/resources/js/framework/station_name.js?station_version=1.9151'
  headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}
  resp=requests.get(url,headers=headers)
  resp.encoding='utf-8'
  #进行数据的提取(只要一部分)
  stations=re.findall('([\u4e00-\u9fa5]+)\|([A-Z]+)',resp.text)
  #将列表进行转换为字典
  stations_data=dict(stations)
  #key与value进行互换
  station_d={}#空字典。用于完成上述操作
  for item in stations_data:
    station_d[stations_data[item]]=item
  #print(station_d)
  return station_d

def start():
  lst=parse_json(send_request(),get_city())
  #进行数据的筛选(得到有效的数据)
  for i in lst:
    if i[3]!='无' and i[3]!='':
      print(i)
if __name__=='__main__':
  start() #开始

运行的截图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Python数据可视化实现正态分布(高斯分布)

    Python数据可视化实现正态分布(高斯分布)

    这篇文章主要介绍了Python数据可视化实现正态分布(高斯分布),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 实例讲解python函数式编程

    实例讲解python函数式编程

    这篇文章主要介绍了python函数式编程实例,使用一个例子来阐述python函数式编程,需要的朋友可以参考下
    2014-06-06
  • Python wordcloud库安装方法

    Python wordcloud库安装方法

    Wordcloud库的基本使用非常简单,只需要导入库并调用WordCloud类即可,这篇文章主要介绍了Python wordcloud库,需要的朋友可以参考下
    2024-01-01
  • Python类中方法getitem和getattr详解

    Python类中方法getitem和getattr详解

    这篇文章主要介绍了Python类中方法getitem和getattr详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Python绘制茎叶图的示例代码

    Python绘制茎叶图的示例代码

    这篇文章主要为大家信息介绍了Python绘制茎叶图的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01
  • Python实例解析图像形态学运算技术

    Python实例解析图像形态学运算技术

    形态学处理方法是基于对二进制图像进行处理的,卷积核决定图像处理后的效果。本文将为大家详细介绍一下OpenCV中的图像形态学,感兴趣的可以了解一下
    2022-03-03
  • Flask模板继承深入理解与应用

    Flask模板继承深入理解与应用

    Flask中的模板可以继承,通过继承可以把模板中许多重复出现的元素抽取出来,放在父模板中,并且父模板通过定义block给子模板开一个口,子模板根据需要,再实现这个block
    2022-09-09
  • Python实现简易过滤删除数字的方法小结

    Python实现简易过滤删除数字的方法小结

    这篇文章主要介绍了Python实现简易过滤删除数字的方法,结合实例形式总结分析了Python基于正则及内置函数过滤删除数字的相关操作技巧,需要的朋友可以参考下
    2019-01-01
  • 关于Python面向对象编程的知识点总结

    关于Python面向对象编程的知识点总结

    Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。下面这篇文章将详细给大家介绍关于Python面向对象编程的知识点,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-02-02
  • Python中将语音转换为文本的实现方法

    Python中将语音转换为文本的实现方法

    语音识别是计算机软件识别口语中的单词和短语并将其转换为人类可读文本的能力,在本教程中,您将学习如何使用SpeechRecognition 库在 Python 中将语音转换为文本,文中有相关的代码供大家参考,需要的朋友可以参考下
    2024-01-01

最新评论