12306列车信息获取失败,如何解决?

碧海醫心
发布: 2024-11-08 16:33:08
原创
1025人浏览过

12306列车信息获取失败,如何解决?

如何解决12306列车信息获取失败问题

上文中提供的代码尝试获取12306列车信息,但返回结果为空。问题在于代码中缺少必要的cookies。

通常情况下,爬取12306网站需要提供cookies,才能获取到完整的json文件。添加cookies后,代码如下:

import requests

cookies = {
    '_jc_save_fromDate': '2021-05-01',    #开车的时间
}

headers = {
    'Connection': 'keep-alive',
    'Cache-Control': 'no-cache',
    'sec-ch-ua': '^\^',
    'Accept': '*/*',
    'X-Requested-With': 'XMLHttpRequest',
    'If-Modified-Since': '0',
    'sec-ch-ua-mobile': '?0',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36',
    'Sec-Fetch-Site': 'same-origin',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Dest': 'empty',
    'Referer': 'https://kyfw.12306.cn/otn/leftTicket/init?linktypeid=dc',
    'Accept-Language': 'zh-CN,zh;q=0.9',
}

params = (
    ('leftTicketDTO.train_date', '2021-05-01'),
    ('leftTicketDTO.from_station', 'SHH'),
    ('leftTicketDTO.to_station', 'BJP'),
    ('purpose_codes', 'ADULT'),
)

response = requests.get('https://kyfw.12306.cn/otn/leftTicket/query', headers=headers, params=params,cookies=cookies)

print(response.json())
登录后复制

添加cookies后,代码可以正常获取到12306列车信息。

以上就是12306列车信息获取失败,如何解决?的详细内容,更多请关注php中文网其它相关文章!

铁路12306
铁路12306

铁路12306是一款由中铁程科技有限责任公司官方发行推出的购票订票软件。这款软件能够帮助用户随时随地查询火车高铁的信息,不管是想要购票还是退票改签都可以在这里进行操作,有需要的小伙伴快来保存下载体验吧!

下载
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号