爬虫-12306余票查询

12306爬虫余票查询

爬取的url

链接: https://kyfw.12306.cn/otn/leftTicket/query.

简单描述

利用requests模块进行网页内容请求与响应,设置headers可以解决一般的反爬机制。

import requests
import json


#分析网站

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

city ={
        '北京北': 'VAP',
        '北京东': 'BOP',
        '北京': 'BJP',
        '北京南': 'VNP',
        '北京西': 'BXP',
        '广州南': 'IZQ',
        '重庆北': 'CUW',
        '重庆': 'CQW',
        '重庆南': 'CRW',
        '广州东': 'GGQ',
        '上海': 'SHH',
        '上海南': 'SNH',
        '上海虹桥': 'AOH'
}
t = input('enter a time:(yyyy-mm-dd):')
start = input('enter a start city:')
start = city[start]
end = input('enter a end city:')
end = city[end]
params = {
    'leftTicketDTO.train_date': t,
    'leftTicketDTO.from_station': start,
    'leftTicketDTO.to_station': end,
    'purpose_codes': 'ADULT'
}

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
    'Referer': 'https://kyfw.12306.cn/otn/leftTicket/init?linktypeid=wf',
    'Cookie': '_uab_collina=163077338623568853680117; JSESSIONID=2F34A4A8F36A2664D16E3D530A8C409A; BIGipServerotn=1089470986.50210.0000; RAIL_EXPIRATION=1631049192249; RAIL_DEVICEID=M8sa8Kq70vKSYxrnRGUb8LfnYvheI7g5wspaDkGezBtmLQJ_J_T0ge43HEBOCkMR8UTqXHEYRROGvApGh3x23cvHptlSQogWfOEaf7N2oaX6H-GTrXXK-qa-lhUkTxo8oWuXhl8Ctb5eN0LM5uu96xs9AN4Lro1_; guidesStatus=off; highContrastMode=defaltMode; cursorStatus=off; BIGipServerpool_passport=199492106.50215.0000; route=9036359bb8a8a461c164a04f8f50b252; _jc_save_fromStation=%u4E0A%u6D77%2CSHH; _jc_save_toStation=%u5317%u4EAC%2CBJP; _jc_save_fromDate=2021-09-05; _jc_save_toDate=2021-09-05; _jc_save_wfdc_flag=wf'
}

response = requests.get(url,headers=headers,params=params)#.json是获取网页相应的数据,而json.loads是字符串的一个转换
data = json.loads(response.content)



for i in data['data']['result']:

    temp_list = i.split('|')
    # print(temp_list)
    #无座     26
    #软座     23
    #硬座     29
    #硬卧     28
    if temp_list[29] == '有':
        print('硬座有票','车次-->',temp_list[3])
    else:
        print('硬座无票','车次-->',temp_list[3])

一起加油!

下一期更新12306官网抢票。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值