MeetUp 是一个社交媒体网站,允许成员组建虚拟社区,在其所在的地理区域组织活动。MeetUp 的理念并不新鲜,但其 UI 和 UX 在近几年尤为创新。它让特定社区每天、每周、每月或双月举行的活动组织流程更加顺畅。
MeetUp 的 API 允许用户直接从网站收集数据。与大多数 API 一样,许多域名所有者会限制您可以调用的数据量。有些域名在维护 API 文档方面做得并不出色,也有些在提升文档的易用性方面做得非常好。MeetUp 介于两者之间。您可以用多种方式使用他们的 API。
我使用 MeetUp 的 API,是为了收集德州北部达拉斯-沃思堡地区三个不同小组的数据。我用来访问 MeetUp 域上 API 的语言是 Python。根据您的熟悉程度,C++ 或 Python 都足以使用网站的 API。
如果您还不熟悉 Python,欢迎查看我们的 数据科学入门之 Python 课程。
在本教程中,您将学习如何使用 Python 调用 MeetUp 的 API 。我将演示如何获取小组的 ID ,以及如何将该 ID 与您的 API Key 结合,来发起请求 获取小组的 JSON 格式数据。最后,我会展示如何将捕获的数据写入 JSON 文件 并保存在您的 PC/Mac 上。
如何获取 API Key?
在 MeetUp 的网站上,您必须拥有一个活跃账户才能获得 API key。网站上的所有用户都会分配一个 key。对于尚无账户的用户,第一步是在 MeetUp 上注册账户。完成后,您可以在此处 获取您的 API key。
您可以随时选择重置您的 key。务必妥善保管您的 API key,切勿外泄。
开始上手
首先,导入您在简单 Python 脚本中将用到的所有库。
import meetup. api
import json
import requests
import time
import codecs
import sys
import io
技术支持
安装 API
在继续运行下面的输入前,请确保您的机器已安装 meetup.api。如果您使用的是类 UNIX 的命令行,只需执行一次简单的 pip 安装:
pip install meetup.api
如果使用 Jupyter Notebooks,您可以这样安装该库:
!pip install meetup.api
这将为 Python 安装 MeetUp 的 API 库。
由于 Python 是解释型语言,定义在语法中很重要。比如,通过定义 client,您可以在编写任何请求时直接用 client 来调用 API key,而无需反复输入 API Key。这是用 Python 编码时的重要实践。首先,您将如下把 API key 定义为 client:
client = meetup. api. Client( 'API Key Here' )
技术支持
定义 group_info 可以让您根据 MeetUp 网站上的小组名称拉取该小组的 URL。
group_info = client. GetGroup( { 'urlname' : 'Group Name Here No Spaces' } )
技术支持
获取小组的 ID
完成上述步骤后,您就可以调用 group_info 并据此发起多个请求。输入 group_info.link 这一行,输出将是该小组的完整 URL 地址。
group_info. link
技术支持
在下一行调用 group_info.id 将获得该小组的 ID 编号。
group_info. id
技术支持
您需要小组的 ID 编号,才能继续下一步。
发起请求
现在您已经知道了小组的 ID 编号。您可以通过定义 df,并将小组 ID 和 API key 插入到 URL 中来发起请求。这被称为 request.get
df = requests. get( 'https://api.meetup.com/2/members?group_id=GROUP_ID&key=API_KEY' )
技术支持
定义好 df 后,您就可以查看 status_code、headers、编码,或通过调用 json 直接查看数据。
首先输入 df.status_code,其输出(状态码)应为:200
查看 headers,输入 df.headers['content-type']。headers 输出应为:application/json;charset=utf-8
检查编码,输入 df.encoding。编码输出应为:utf-8
此时,定义为 df 的数据已经存在。要内联查看它,输入 df.json()
将数据写入 JSON 文件
此时您已经拿到了数据。接下来,您将把数据写入一个会保存在您的 PC/MAC 上的 JSON 文件中。这一步很重要。您虽然已经获取了数据,但它还未保存到本地硬盘。您可以使用以下代码将数据写入文件。
try :
to_unicode = unicode
except NameError:
to_unicode = str
with io. open ( 'df.json' , 'w' , encoding= 'utf8' ) as outfile:
str_ = json. dumps( data,
indent= 4 , sort_keys= True ,
separators= ( ',' , ': ' ) , ensure_ascii= False )
outfile. write( to_unicode( str_) )
技术支持
在运行这段代码前,请先通过 import io 导入 io 库。
当您运行这段代码时,它会将您使用 MeetUp 的 API 发起请求所获取的数据写入 JSON 文件,并保存到您的硬盘目录。具体地说,它会保存在您正在使用的 .ipynb 或 .py 文件的同一目录下。
如果您使用的是 Jupyter Notebook,只要按“最近修改”对目录排序,通常就能立即找到该文件。您也可以将其保存到未来使用更方便的位置。
JSON 文件的用途有哪些?该 JSON 文件保存了您使用 MeetUp 的 API 拉取的数据。您可以通过多种方式使用这些数据。如果数据存在缺失值,您可以用 Python 对数据进行清洗。您可以构建数据集并应用多种技术开展数据分析;也可以将数据可视化,构建展示数据集内相关性的仪表板和图表。最后,一个良好的数据集还可用于应用机器学习算法,构建预测模型。以上只是我们从 MeetUp 的 API 写出的这个 JSON 文件的一部分用途。唯一的限制是您的想象力。总之,从网站的 API 拉取数据是获取数据集的多种方式之一。最终目标是将数据集用于数据分析、建模与可视化。
结语
总而言之,使用 MeetUp 的 API 拉取数据需要几个步骤。第一步是找到并确认您的 API Key,下一步是获取目标小组的 ID。有了这些信息,您就可以从任意感兴趣的小组拉取数据。发出请求后,您需要将其写入 JSON 文件。掌握如何将 API 作为工具使用,是一种收集数据的高效且具成本效益的方法。您收集到的数据可以在今后的项目中反复利用。与数据抓取等方法相比,使用网站的 API 往往是更不具侵扰性的方式。拿到 JSON 文件后,仍需对其进行处理。您依然需要清洗数据。作为初学者,您需要理解“数据清洗”这一术语。数据清洗是指将数据集整理为列与行不缺失的状态。您需要检查缺失的数值型数据与分类型数据(姓名、地点等)。现在,您已经具备了开始从 MeetUp 的 API 拉取数据的工具。
在开始处理来自 API 的数据之前,您需要对数据进行清洗。如果您想学习如何清洗,欢迎参加我们的 Python 数据清洗 课程。
在使用网站的 API 时,请注意 API 使用的限制条件。这些规则由域名所有者自行设定。请自觉合规并保持谨慎。
查看我们的教程:Python 版 Google Vision API 新手指南 。
MeetUp 是一个社交媒体网站,允许成员组建虚拟社区,在其所在的地理区域组织活动。MeetUp 的理念并不新鲜,但其 UI 和 UX 在近几年尤为创新。它让特定社区每天、每周、每月或双月举行的活动组织流程更加顺畅。
MeetUp 的 API 允许用户直接从网站收集数据。与大多数 API 一样,许多域名所有者会限制您可以调用的数据量。有些域名在维护 API 文档方面做得并不出色,也有些在提升文档的易用性方面做得非常好。MeetUp 介于两者之间。您可以用多种方式使用他们的 API。
我使用 MeetUp 的 API,是为了收集德州北部达拉斯-沃思堡地区三个不同小组的数据。我用来访问 MeetUp 域上 API 的语言是 Python。根据您的熟悉程度,C++ 或 Python 都足以使用网站的 API。
如果您还不熟悉 Python,欢迎查看我们的 数据科学入门之 Python 课程。
在本教程中,您将学习如何使用 Python 调用 MeetUp 的 API。我将演示如何获取小组的 ID,以及如何将该 ID 与您的 API Key 结合,来发起请求获取小组的 JSON 格式数据。最后,我会展示如何将捕获的数据写入 JSON 文件并保存在您的 PC/Mac 上。
如何获取 API Key?
在 MeetUp 的网站上,您必须拥有一个活跃账户才能获得 API key。网站上的所有用户都会分配一个 key。对于尚无账户的用户,第一步是在 MeetUp 上注册账户。完成后,您可以在此处获取您的 API key。
您可以随时选择重置您的 key。务必妥善保管您的 API key,切勿外泄。
开始上手
首先,导入您在简单 Python 脚本中将用到的所有库。
安装 API
在继续运行下面的输入前,请确保您的机器已安装
meetup.api。如果您使用的是类 UNIX 的命令行,只需执行一次简单的 pip 安装:pip install meetup.api如果使用 Jupyter Notebooks,您可以这样安装该库:
!pip install meetup.api这将为 Python 安装 MeetUp 的 API 库。
由于 Python 是解释型语言,定义在语法中很重要。比如,通过定义
client,您可以在编写任何请求时直接用client来调用 API key,而无需反复输入 API Key。这是用 Python 编码时的重要实践。首先,您将如下把 API key 定义为client:定义
group_info可以让您根据 MeetUp 网站上的小组名称拉取该小组的 URL。获取小组的 ID
完成上述步骤后,您就可以调用
group_info并据此发起多个请求。输入group_info.link这一行,输出将是该小组的完整 URL 地址。在下一行调用
group_info.id将获得该小组的 ID 编号。您需要小组的 ID 编号,才能继续下一步。
发起请求
现在您已经知道了小组的 ID 编号。您可以通过定义
df,并将小组 ID 和 API key 插入到 URL 中来发起请求。这被称为request.get定义好
df后,您就可以查看status_code、headers、编码,或通过调用 json 直接查看数据。首先输入
df.status_code,其输出(状态码)应为:200查看 headers,输入
df.headers['content-type']。headers 输出应为:application/json;charset=utf-8检查编码,输入
df.encoding。编码输出应为:utf-8此时,定义为
df的数据已经存在。要内联查看它,输入df.json()将数据写入 JSON 文件
此时您已经拿到了数据。接下来,您将把数据写入一个会保存在您的 PC/MAC 上的 JSON 文件中。这一步很重要。您虽然已经获取了数据,但它还未保存到本地硬盘。您可以使用以下代码将数据写入文件。
在运行这段代码前,请先通过
import io导入 io 库。当您运行这段代码时,它会将您使用 MeetUp 的 API 发起请求所获取的数据写入 JSON 文件,并保存到您的硬盘目录。具体地说,它会保存在您正在使用的 .ipynb 或 .py 文件的同一目录下。
如果您使用的是 Jupyter Notebook,只要按“最近修改”对目录排序,通常就能立即找到该文件。您也可以将其保存到未来使用更方便的位置。
JSON 文件的用途有哪些?该 JSON 文件保存了您使用 MeetUp 的 API 拉取的数据。您可以通过多种方式使用这些数据。如果数据存在缺失值,您可以用 Python 对数据进行清洗。您可以构建数据集并应用多种技术开展数据分析;也可以将数据可视化,构建展示数据集内相关性的仪表板和图表。最后,一个良好的数据集还可用于应用机器学习算法,构建预测模型。以上只是我们从 MeetUp 的 API 写出的这个 JSON 文件的一部分用途。唯一的限制是您的想象力。总之,从网站的 API 拉取数据是获取数据集的多种方式之一。最终目标是将数据集用于数据分析、建模与可视化。
结语
总而言之,使用 MeetUp 的 API 拉取数据需要几个步骤。第一步是找到并确认您的 API Key,下一步是获取目标小组的 ID。有了这些信息,您就可以从任意感兴趣的小组拉取数据。发出请求后,您需要将其写入 JSON 文件。掌握如何将 API 作为工具使用,是一种收集数据的高效且具成本效益的方法。您收集到的数据可以在今后的项目中反复利用。与数据抓取等方法相比,使用网站的 API 往往是更不具侵扰性的方式。拿到 JSON 文件后,仍需对其进行处理。您依然需要清洗数据。作为初学者,您需要理解“数据清洗”这一术语。数据清洗是指将数据集整理为列与行不缺失的状态。您需要检查缺失的数值型数据与分类型数据(姓名、地点等)。现在,您已经具备了开始从 MeetUp 的 API 拉取数据的工具。
在开始处理来自 API 的数据之前,您需要对数据进行清洗。如果您想学习如何清洗,欢迎参加我们的 Python 数据清洗 课程。
在使用网站的 API 时,请注意 API 使用的限制条件。这些规则由域名所有者自行设定。请自觉合规并保持谨慎。
查看我们的教程:Python 版 Google Vision API 新手指南。