我们拿到刚才生成的url,访问一下(开启开发者模式):
我们发现有一个query,然后右边就是我们查询的结果,因此我们可以从这个结果中取出信息:
https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=2019-04-20&leftTicketDTO.from_station=SHH&leftTicketDTO.to_station=TJP&purpose_codes=ADULT
看到这里,你或许会明白,我们其实构造的url最后就是以这个url的查询结果的形式返回,那么我们可不可以直接构造这个url呢?答案是可以的,那么我们对上面的代码进行修改一下:
def get_query_url(text, date, from_station, to_station): # 构建用于查询列车车次信息的url # 参数:日期,出发地,到达地 # key为车站名称, value为车站代号 date = date from_station = text[from_station] to_station = text[to_station] # 新的url url = ( "https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date={}" "&leftTicketDTO.from_station={}" "&leftTicketDTO.to_station={}" "&purpose_codes=ADULT" ).format(date, from_station, to_station) print(url) return url
运行结果如下:
https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=2019-04-20&leftTicketDTO.from_station=SHH&leftTicketDTO.to_station=TJP&purpose_codes=ADULT
截图就是这样:
也就说结果是一个json形式的dict,我们先根据data这个key取出全部信息,再根据result这个