前面处理的多还是结构化的信息,对于返回的json就要用另外的模块了。
还是12306的获取的信息,地址已经在用python写爬虫-2.2requests库之post说明了。
这是一个json,json看起来就是一个dict,但是type是str,怎么能够清楚的看到返回json的结构呢,还是F12.
在这里我们可以清楚的看到,我们需要的信息。
然后就可以解析了,这次还是用pandas,分解这些在一起的内容很容易。
代码如下:
import json
import requests
import pandas as pd
def xhr():
url = 'https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=2018-04-23&leftTicketDTO.from_station=XNO&leftTicketDTO.to_station=GRO&purpose_codes=ADULT'
re =requests.get(url).text
res = json.loads(re)
list = [item.split('|') for item in res['data']['result']]
df = pd.DataFrame(data=list)
print(df)
res = json.loads(re)是把返回的json转为dict。dict就能用key来提取信息。
list = [item.split('|') for item in res['data']['result']]
用split来分离一条信息的各项内容。
df = pd.DataFrame(data=list)转为dataframe。好观察。
结果如下: