可狱可囚的爬虫系列课程 09:通过 API 接口抓取数据

前面已经讲解过 Requests 结合 BeautifulSoup4 库抓取数据,这种方式在抓取数据时还是比较方便快捷的,但是这并不意味着所有的网站都适合这种方式,并且这也不是抓取数据的最快方式,今天我们来讲一种更快速的获取数据的方式,通过 API 接口抓取数据

一、API接口概述

API 接口是负责传递数据的,在现今互联网已存在的网站中,除了极个别非常古老的网站,大部分的网站都会采用 API 接口进行数据的传输。那么为什么 API 接口这么受欢迎呢,那当然是其带来了很多的好处,最直观的便是极大地节省了开发的成本。
举个例子:一个团队想制作一个游戏,在这个游戏里有付费的功能,那么相应的就需要有一个提供支付服务的平台,众所周知,支付平台是需要有能力去保证资金交易安全且需要有资质的,普通的团队压根搞不起啊,所以对于这个团队来说花钱买现成的支付平台的服务是最好的选择,那么这个服务是以何种方式介入的呢,答案就是 API 接口,通过这个 API 接口实现交易功能及交易数据的传递。 所以网站中显示的数据也是可以通过 API 接口从数据库传递到网站中的。
那么如何利用好 API 接口获取数据,这便是我们本文要学习的内容。

二、API接口结构

API 接口长什么样子呢,请看示例:https://v.api.aa1.cn/api/api-qq-gj/index.php?qq=xxxxx&num=xx&vip=xxx
上方这个 URL 便是一个 API 接口,它是由请求地址和请求参数两部分构成的,请求地址和请求参数之间使用?连接,请求参数要写成key=value的形式(我们常说的键值对形式),如果同时有多个请求参数,请求参数之前使用&连接。

请求地址,顾名思义就是你请求的服务器的入口;
请求参数,就是按照设定你得告诉服务器你要做什么。

相信大家也尝试打开这个链接了,结果发现什么也没有,甚至还报错,那是因为这个 API 接口的请求参数设定不正确,使用 API 接口就需要保证请求参数的正确性。
上面的 API 接口其实是一个QQ价格评估接口,这是它需要的参数信息以及返回结果信息:
Untitled.png
我们只需要按照上图的信息稍微修改下,便能得到一个正确的可访问的 API 接口:https://v.api.aa1.cn/api/api-qq-gj/index.php?qq=1766935706&num=68&vip=1,这是我用自己的 QQ 做的实例演示,结果如下,这就是此 API 接口实现的功能以及传递的数据。
image.png
那么 API 接口中的数据是如何被爬虫获取到呢?

三、Requests请求API

API 接口本质也是一个 URL,所以也是可以使用 Requests 进行请求的。

import requests

API_URL = 'https://v.api.aa1.cn/api/api-qq-gj/index.php?qq=1766935706&num=71&vip=1'
Headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36'
}
response = requests.get(url=API_URL, headers=Headers, verify=False)
result = response.text if response.status_code == 200 else '状态码异常'
print(result)

我们请求这个 API 接口的结果如下图所示。

注意:上述代码中有一个还未曾涉及到的知识点,我暂时先给大家做一个简单的解释:Requests 请求时,我在 get 方法中添加了一个 verify=False,表示移除 SSL 认证,因为使用浏览器打开此接口显示为不安全的,说明这个网站没有 SSL 证书或者 SSL 证书过期了,不添加 verify=False 可能会报错,可狱可囚的爬虫系列课程 11:Requests中的SSL这篇文章对 verify 参数进行了说明。

image.png
至此,我们使用爬虫获取到了一个 API 接口中的数据,在下一篇文章中我将带大家学习如何在一个网页中寻找 API 接口从而将数据快速无误的抓取下来。

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 好的,这是一个使用 Python 爬虫通过 API 抓取数据的示例: ``` import requests url = "https://api.example.com/data" response = requests.get(url) if response.status_code == 200: data = response.json() print(data) else: print("请求失败,状态码:", response.status_code) ``` 这段代码使用了 `requests` 库发送一个 GET 请求到 API 地址 `https://api.example.com/data`。如果请求成功(即返回状态码为 200),将返回的数据(格式为 JSON)解析并打印。如果请求失败,则打印错误信息。 ### 回答2: 编写一个通过API抓取数据Python爬虫,主要分为以下几个步骤: 第一步,导入所需的库。首先导入`requests`库用于发送HTTP请求,以获取API数据。然后导入`json`库用于处理返回的JSON数据。 第二步,定义API的URL和参数。根据需要访问的API,设置相应的URL以及可能需要的参数。例如,如果要从一个天气API中获取某城市的天气数据,可以设置URL为相应的API链接,参数可以是城市的名称、日期等。 第三步,发送HTTP请求并获取数据。使用`requests`库发送GET请求,将API的URL和参数作为参数传递给`requests.get()`函数。然后,使用`response.json()`来获取返回的数据,并将其存储在一个变量中。 第四步,解析数据。根据API返回的数据结构,使用`json`库来解析返回的JSON数据。通常可以使用字典和列表的方式来访问和提取所需的数据。 第五步,处理和存储数据。根据需要,可以对数据进行进一步处理,例如将其转换为CSV文件、存储到数据库或进行可视化处理。 第六步,异常处理。在进行API请求和数据处理的过程中,可能会出现各种错误,例如网络连接错误、API返回错误等。需要使用`try-except`语句来捕获这些异常,并添加适当的处理程序。 第七步,运行爬虫。最后,编写一个主函数,调用前面定义的函数,并运行爬虫代码。可以使用循环来定期执行爬虫,以获取最新的数据。 总结:以上是一个简单的通过API抓取数据Python爬虫的大致步骤。实际使用时,需要根据具体的API接口数据处理需求进行相应的调整和优化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HerrFu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值