Chuyển đến nội dung chính

MeetUp API

Trong hướng dẫn này, bạn sẽ học cách lấy dữ liệu trực tiếp từ API của MeetUp bằng Python và ghi nó vào JSON.
· 8 phút đọc

Khám phá cùng AI

MeetUp là một trang mạng xã hội cho phép các thành viên lập nên các cộng đồng trực tuyến để tổ chức sự kiện tại khu vực địa lý của họ. Ý tưởng mà MeetUp theo đuổi không mới, nhưng giao diện và trải nghiệm người dùng đã có nhiều đổi mới trong những năm gần đây. Việc đơn giản hóa các tác vụ tổ chức sự kiện dành riêng cho từng cộng đồng gặp mặt hàng ngày, hàng tuần, hàng tháng hoặc hai tháng một lần đã trở nên dễ dàng hơn.

API của MeetUp cho phép người dùng thu thập dữ liệu trực tiếp từ trang web. Giống như hầu hết các API khác, nhiều chủ sở hữu tên miền giới hạn lượng dữ liệu bạn có thể gọi. Một số tên miền không duy trì tài liệu API tốt. Một số khác làm rất tốt để tài liệu của họ thân thiện với người dùng nhất có thể. MeetUp nằm ở đâu đó giữa hai thái cực này. Có nhiều cách để bạn có thể sử dụng API của họ.

Mục đích tôi sử dụng API của MeetUp là để thu thập dữ liệu từ ba nhóm khác nhau trong khu vực Dallas–Fort Worth ở Bắc Texas. Ngôn ngữ tôi dùng để truy cập API trên tên miền của MeetUp là Python. Tùy vào mức độ bạn thấy thoải mái, C++ hoặc Python đều có thể đủ để sử dụng API của một trang web.

Nếu bạn chưa quen với Python, nhớ xem khóa học Giới thiệu Python cho Khoa học Dữ liệu của chúng tôi.

Trong hướng dẫn này, bạn sẽ học cách gọi API của MeetUp bằng Python. Tôi sẽ chỉ bạn cách lấy ID của một nhóm, và cách dùng ID đó cùng với API Key của bạn để gửi Request lấy dữ liệu của nhóm ở định dạng JSON. Cuối cùng, tôi sẽ minh họa cách bạn có thể ghi dữ liệu đã lấy vào một tệp JSON được lưu trên PC/Mac của bạn.

Làm thế nào để lấy API Key?

Trên trang web của MeetUp, bạn phải có tài khoản đang hoạt động để nhận API key. Tất cả người dùng trên trang web đều được cấp một key. Với những ai chưa có tài khoản, bước đầu tiên là đăng ký tài khoản trên MeetUp. Sau khi hoàn tất, bạn có thể lấy API key của mình tại đây.

Bạn có thể đặt lại key bất cứ lúc nào. Điều quan trọng là bạn phải giữ bí mật API key của mình.

Bắt đầu

Trước hết, bạn cần import tất cả các thư viện Python sẽ dùng trong script py đơn giản của mình.

import meetup.api
import json
import requests
import time
import codecs
import sys
import io

Cài đặt API

Hãy đảm bảo meetup.api đã được cài trên máy của bạn trước khi chạy phần nhập liệu này. Chỉ cần pip install đơn giản là đủ, nếu bạn dùng dòng lệnh dựa trên UNIX như sau:

pip install meetup.api

Nếu dùng Jupyter Notebooks, bạn có thể cài thư viện như sau:

!pip install meetup.api

Điều này sẽ cài đặt thư viện API của MeetUp cho Python.

Vì Python là ngôn ngữ thông dịch, việc định nghĩa đóng vai trò quan trọng trong cú pháp. Ví dụ, bằng cách định nghĩa client, bạn có thể viết mọi yêu cầu và chỉ cần dùng từ client để gọi API key, nhờ đó không cần gõ lại API Key liên tục. Đây là một khía cạnh quan trọng khi lập trình với Python. Đầu tiên, bạn sẽ định nghĩa API key của mình là client như sau:

client = meetup.api.Client('API Key Here')

Định nghĩa group_info cho phép bạn lấy url của một nhóm dựa trên tên nhóm trên trang web của MeetUp.

group_info = client.GetGroup({'urlname': 'Group Name Here No Spaces'})

Lấy ID của nhóm

Sau khi xong, bạn có thể gọi group_info và thực hiện nhiều yêu cầu với nó. Gõ dòng group_info.link sẽ cho ra địa chỉ URL đầy đủ của nhóm.

group_info.link

Gọi group_info.id ở dòng tiếp theo sẽ lấy cho bạn số ID của nhóm.

group_info.id

Bạn cần số ID của nhóm để có thể tiếp tục bước tiếp theo.

Gửi yêu cầu

Bây giờ bạn đã biết số ID của nhóm. Bạn có thể thực hiện request bằng cách định nghĩa df và chèn group id và API key của bạn vào url. Đây được gọi là một request.get

df = requests.get('https://api.meetup.com/2/members?group_id=GROUP_ID&key=API_KEY')

Với df đã được định nghĩa, bạn có thể gọi status_code, headers, encoding, và có thể xem trực tiếp dữ liệu bằng cách gọi json.

Trước hết, bạn sẽ gõ df.status_code, kết quả cho status_code sẽ là: 200

Với headers, bạn gõ df.headers['content-type'] Kết quả cho headers: application/json;charset=utf-8

Để kiểm tra encoding, gõ df.encoding Kết quả cho encoding: utf-8

Ở thời điểm này, dữ liệu được định nghĩa là df đã tồn tại. Để xem nội tuyến, gõ df.json()

Ghi dữ liệu vào tệp JSON

Đến đây bạn đã có dữ liệu. Tiếp theo, bạn sẽ ghi dữ liệu vào một tệp json được lưu trên PC/MAC của bạn. Đây là bước quan trọng. Bạn đã có dữ liệu, nhưng nó chưa được lưu trên ổ đĩa cứng của bạn. Bạn có thể dùng đoạn mã sau để ghi dữ liệu vào tệp.

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_))

Trước khi chạy đoạn này, hãy import thư viện io bằng cách chạy import io.

Ngay khi bạn chạy đoạn mã này, nó sẽ ghi dữ liệu từ Request bạn đã thực hiện bằng API của MeetUp vào một tệp JSON được lưu trong thư mục ổ đĩa của bạn. Cụ thể là trong cùng thư mục với tệp .ipynb hoặc .py mà bạn đang dùng.

Nếu bạn dùng Jupyter Notebook, bạn sẽ có thể tìm thấy nó ngay lập tức nếu sắp xếp thư mục trên Jupyter Notebook theo thứ tự sửa đổi gần nhất. Bạn cũng có thể lưu nó vào vị trí thuận tiện hơn để dùng sau.

Các tác dụng của tệp JSON là gì? Tệp JSON chứa dữ liệu bạn đã lấy bằng API của MeetUp. Bạn có thể dùng dữ liệu này theo nhiều cách. Nếu dữ liệu có giá trị thiếu, bạn có thể dùng Python để làm sạch dữ liệu. Bạn có thể xây dựng một tập dữ liệu và áp dụng nhiều kỹ thuật để tiến hành Phân tích Dữ liệu. Hoặc bạn có thể trực quan hóa dữ liệu và xây dựng bảng điều khiển, biểu đồ thể hiện các mối tương quan trong tập dữ liệu. Cuối cùng, một tập dữ liệu tốt có thể được dùng để áp dụng các thuật toán Machine Learning nhằm xây dựng mô hình dự đoán. Đây là một vài điều bạn có thể làm với tệp JSON chúng ta đã ghi từ API của MeetUp. Giới hạn duy nhất là trí tưởng tượng của bạn. Tóm lại, lấy dữ liệu từ API của một trang web là một trong nhiều cách để có được các tập dữ liệu. Mục tiêu cuối cùng là sử dụng tập dữ liệu hiệu quả trong phân tích dữ liệu, mô hình hóa và trực quan hóa.

Kết luận

Tóm lại, dùng API của MeetUp để lấy dữ liệu gồm một số bước. Bước đầu tiên là tìm và xác định API Key của bạn, bước tiếp theo là lấy ID của nhóm mong muốn. Với thông tin này, bạn có thể lấy dữ liệu từ bất kỳ nhóm nào bạn thích. Khi đã gửi pull request, bạn sẽ cần ghi nó vào một tệp JSON. Biết cách dùng API như một công cụ là phương thức hữu ích và tiết kiệm chi phí để thu thập dữ liệu. Bạn đang thu thập dữ liệu để có thể sử dụng cho các dự án trong tương lai. Dùng API của một trang web thường là phương pháp ít xâm lấn nhất so với các phương pháp khác như cào dữ liệu. Khi đã có tệp JSON, vẫn còn việc cần làm với nó. Bạn vẫn sẽ cần làm sạch dữ liệu. Là người mới bắt đầu, bạn sẽ cần hiểu khái niệm làm sạch dữ liệu. Làm sạch dữ liệu là khi bạn tổ chức một tập dữ liệu sao cho các cột và hàng không bị thiếu. Bạn sẽ xem xét dữ liệu số bị thiếu và dữ liệu phân loại (tên, địa điểm, v.v.). Giờ đây bạn đã có công cụ để bắt đầu lấy dữ liệu từ API của MeetUp.

Trước khi có thể bắt đầu làm việc với dữ liệu được yêu cầu từ API, bạn sẽ phải làm sạch dữ liệu. Nếu muốn học cách thực hiện, hãy tham gia khóa học Làm sạch Dữ liệu trong Python của chúng tôi.

Khi sử dụng API của một trang web, vui lòng lưu ý các giới hạn áp đặt lên việc sử dụng API. Chủ sở hữu tên miền tự đặt ra các quy tắc này. Hãy tự ý thức và thận trọng.

Xem thêm hướng dẫn Hướng dẫn cho người mới bắt đầu về Google's Vision API trong Python của chúng tôi.

Chủ đề

Liên quan