爬虫与Python:(四)爬虫进阶一之数据抓取——2.Python模拟Ajax
2021/10/21 17:39:41
本文主要是介绍爬虫与Python:(四)爬虫进阶一之数据抓取——2.Python模拟Ajax,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
如何用用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中?将会在后面讲到。
这篇关于爬虫与Python:(四)爬虫进阶一之数据抓取——2.Python模拟Ajax的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享