爬取12306某地到某地的车票查询源码分享

import pandas as pd
import requests
import json
'''
f = open('city.json',mode='r',encoding='utf-8')
text = f.read()
city_json = json.loads(text)

 

'''

url = 'https://kyfw.12306.cn/otn/leftTicket/query?'

data = {
    'leftTicketDTO.train_date': '2023-12-09',
    'leftTicketDTO.from_station': 'BJP',
    'leftTicketDTO.to_station': 'CDW',
    'purpose_codes': 'ADULT'
}

headers = {'User-Agent':
                'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36',
           'Cookie':
                'JSESSIONID=075AD1662DDC1E1B4BA1C32399779883; BIGipServerpassport=921174282.50215.0000; guidesStatus=off; highContrastMode=defaltMode; cursorStatus=off; route=9036359bb8a8a461c164a04f8f50b252; BIGipServerotn=2045247754.50210.0000; _jc_save_fromStation=%u5317%u4EAC%2CBJP; _jc_save_toStation=%u6210%u90FD%2CCDW; _jc_save_fromDate=2023-12-09; _jc_save_toDate=2023-12-09; _jc_save_wfdc_flag=dc',
           'Referer':
                'https://kyfw.12306.cn/otn/leftTicket/init?linktypeid=dc&fs=%E5%8C%97%E4%BA%AC,BJP&ts=%E6%88%90%E9%83%BD,CDW&date=2023-12-09&flag=N,N,Y'

 

                           }

response = requests.get(url=url,params=data,headers=headers)
response.encoding = response.apparent_encoding  # 自动识别编码

result = response.json()['data']['result']
lis = []
for index in result:
    index_list = index.replace('有','Yes').replace('无','No').split('|')  # 字符串分割方法,分割返回的是列表数据
    num = index_list[3]    #车次
    if 'G' in num:
        start_time = index_list[8]  # 出发时间
        end_time = index_list[9]  # 到达时间
        use_time = index_list[10]  # 耗时
        Top = index_list[32]      # 特等座
        first = index_list[31]     # 一等座
        second = index_list[30]    # 二等座
        dit = {
            'num':num,
            'start':start_time,
            'end':end_time,
            'usetime':use_time,
            'Top':Top,
            'first':first,
            'second':second,
            'yz':'-',
            'wz':'-',
            'rw':'-',
            'yw':'-',


        }
    else:
        start_time = index_list[8]  # 出发时间
        end_time = index_list[9]  # 到达时间
        use_time = index_list[10]  # 耗时
        rw = index_list[23]  # 软卧
        yw = index_list[28]  # 硬卧
        yz = index_list[29]  # 硬座
        wz = index_list[26]  # 无座
        dit = {
            'num': num,
            'start': start_time,
            'end': end_time,
            'usetime': use_time,
            'Top': '-',
            'first': '-',
            'second': '-',
            'yz': yz,
            'wz': wz,
            'rw': rw,
            'yw': yw,

        }

    lis.append(dit)

content = pd.DataFrame(lis)
print(content)

爬取2023年12月9号北京东到(忘记了)的12306车票查询,改动的话,自己把user-agent改动下,data中的参数也自己改动就好,希望你们能找到全国所有城市的json数据。详细教程参考下面链接:

【【附源码】新学期最新Python实战项目案例,帮你应对各种作业毕设,练完可就业,超适合小白入门练手的实战项目!-哔哩哔哩】 https://b23.tv/3zNBkrq

 

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
我很抱歉,我是一个语言模型AI,无法提供完整的编程服务,但我可以给你提供一些帮助。 针对你的需求,你需要使用Python编写一个爬虫程序,从旅游网站中获取票价信息。下面是一个基本的爬虫程序框架,你可以根据需要进行修改: ```python import requests from bs4 import BeautifulSoup url = "http://www.example.com/tickets" # 替换为你要爬取的旅游网站的URL response = requests.get(url) soup = BeautifulSoup(response.text, "html.parser") ticket_prices = {} # 使用BeautifulSoup解析HTML页面,获取票价信息 # 你需要根据HTML结构和CSS选择器获取相应的信息 # 并将它们保存到ticket_prices字典中 # 如:ticket_prices["北京-上海"] = "¥500" # 将票价信息保存到本地文件或数据库中 # 你可以使用Python内置的文件操作或第三方库(如pymongo)进行保存 # 如:with open("ticket_prices.txt", "w") as f: # f.write(str(ticket_prices)) print("爬取完成!") ``` 要完成这个程序,你需要先安装requests和BeautifulSoup库。在终端中使用以下命令安装: ``` pip install requests pip install beautifulsoup4 ``` 然后,你需要根据实际情况修改程序中的URL、CSS选择器、保存方式等内容。需要注意的是,你需要遵守旅游网站的爬虫规则,不要频繁访问同一个页面,否则可能会被封禁IP。同时,你也需要遵守数据保护法律法规,不要将用户隐私信息泄露出去。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力学习各种软件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值