luyj00436

 如何用用Python模拟Ajax请求,我们仍然以飞常准大数据为例(https://data.variflight.com/analytics/CodeQuery),通过查询北京机场的三个字母码“PEK”来请求获取它的数据,把北京机场的信息提取出来。

分析请求和响应结果

详细的Chrome开发者工具使用方法以及“airportCode”的响应请求获取方法不在赘述了。这里直接上分析结果:

  • 请求链接:https://data.variflight.com/analytics/Codeapi/airportCode
  • 请求方法:POST
  • 请求数据:{key:"PEK" , page : 0} 。key就是输入“PEK”要查询的三字码,page是页码。

分析了请求结果,接下来我们分析响应结果如图1所示:

图1

  • code:代表响应状态码是失败还是成功。
  • data: 我们想要的内容,里面包含了北京机场的相关信息。
  • message: 提示信息。

编写代码

下面使用Python的requests库编码代码来模拟数据。首先定义一个方法来获取每次请求的结果。在请求时,key和page是一个可变参数,所以将它们作为方法的参数传递进来,相关示例代码如下:

 1 # 模拟抓取飞常准大数据的机场信息
 2 import json
 3 import requests
 4 
 5 \'\'\'
 6 获取请求数据
 7 @:param key 查询关键字
 8 @:param page 页码(默认为0)
 9 \'\'\'
10 def get_data(key,page = 0):
11     url = "https://data.variflight.com/analytics/Codeapi/airportCode"
12     data = {
13         "key":key,
14         "page" :page
15     }
16     res = requests.request("post",url , data=data)
17     return res.text
18 
19 \'\'\'
20 获取解析结果
21 @:param data
22 \'\'\'
23 def get_parse(data):
24     return json.loads(data)
25 
26 data = get_data("PEK" , 0)
27 apt_info = get_parse(data)
28 print(apt_info,apt_info["data"])

运行结果如下:

 另外,如何将保存的数据存储到数据库或Excel中?将会在后面讲到。

分类:

技术点:

相关文章:

  • 2021-05-08
  • 2021-12-08
  • 2022-02-09
  • 2021-08-27
  • 2021-12-03
  • 2021-10-27
猜你喜欢
  • 2021-11-02
  • 2022-01-03
  • 2021-12-20
  • 2021-12-20
  • 2021-11-22
  • 2021-12-07
  • 2022-12-23
相关资源
相似解决方案