CHƯƠNG 2. MỘT SỐ HỆ THỐNG THU THẬP DỮ LIỆU
3.2. Kiến trúc hệ thống Twitter Crawler
3.2.2. Sử dụng RestAPI v1.1 để thu thập dữ liệu
RestAPI là một giao diện lâp trình đầy đủ cho phép thực hiện các hầu hết các thao tác trên website Twitter. Twiter cung cấp rất nhiều API, trong khuôn khổ luận văn tôi trình bày 6 API đƣợc áp dụng để xây dựng hệ thống thu thập dữ liệu Twitter sau này. Mỗi request trước khi được gửi tới server cần được xác thực b ng cách sử dụng open authentication. Cách tạo open authentication đƣợc trình bày chi tiết trong Phụ lục 3 của luận văn.
3.2.4.1. statuses/filter.json
Statuses/filter API trả về các tweet khớp với điều kiện lọc, có thể sử dụng đồng thời nhiều tham số lọc nhƣ track, follow, location,.v.v. trong một request từ client gửi tới API. Ví dụ, để lấy các tweet có chứa từ "apple" client gửi request sau: https://stream.twitter.com/1.1/statuses/filter.json?track=apple. Bảng 3-2 liệt kê một số tham số trong filter API.
Tham số Mô tả
track Danh sách các từ khoá cần tìm, mỗi từ khoá cách nhau một dấu phẩy ','
follow Danh sách các user ID, mỗi ID cách nhau một dấu phẩy ',' locations Chỉ r vùng bao địa lý của tweet đƣợc chia sẻ
Bảng 3-2 Danh sách tham số của statuses/filter API
3.2.4.2. statuses/user_timeline
Statuses/user_timeline API trả về danh sách các tweet được người dùng chia sẻ trên mạng xã hội. Người dùng được chỉ rỏ b ng screen_name hoặc user_id. Phương thức này chỉ trả về tối đa 3.200 tweet. Ví dụ, để lấy 200 tweet gần nhất của Barack Obama đã chia sẻ trên mạng client gửi request sau:
https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=barackoba ma&count=200. Bảng 3-3 liệt kê một số tham số trong statuses/user_timline API.
Tham số Mô tả
user_id ID của người dùng cần lấy tweet
screen_name screen_name của người dùng cần lấy tweet since_id Trả về các tweet có id lớn hơn since_id max_id Trả về các tweet có id nhỏ hơn max_id
count Tổng số tweet trả về trong kết quả, tối đa 200 tweet đƣợc trả về trong 1 request
Bảng 3-3 Danh sách các tham số của statuses/user_timeline API 3.2.4.3. follower/ids
Follower/ids API trả về danh sách các ID của follower mà người dùng đã follow. Trong Twitter phân biệt hai khái niệm: follower và friend (hay following). Người dùng follow một người nào đó thì người đó là follower của người dùng. Ngược lại, một người nào đó follow người dùng thì người đó là friend (hay following của người dùng). Ví dụ, để lấy 5000 follower của Barack Obama client gửi request sau:
https://api.twitter.com/1.1/followers/ids.json?cursor=-
1&screen_name=barackobama&count=5000. Bảng 3-4 liệt kê một số tham số trong follower/ids API.
Tham số Mô tả
user_id ID của người dùng cần lấy follower
screen_name screen_name của người dùng cần lấy follower
cursor Danh sách các follower đƣợc chia thành nhiều page. Mỗi page tối đa 5000 ID. Mặc định cursor=-1 trả về page đầu tiên.
count Tổng số ID trả về trong kết quả, tối đa 5000 ID đƣợc trả về trong 1 request
Bảng 3-4 Danh sách các tham số của follower/ids API 3.2.4.4. friends/ids
Friend/ids API trả về danh sách các ID là friend của người dùng. Ví dụ, để
https://api.twitter.com/1.1/friend/ids.json?cursor=-
1&screen_name=barackobama&count=5000. Bảng 3-5 liệt kê một số tham số trong friend/ids API.
Tham số Mô tả
user_id ID của người dùng cần lấy friend
screen_name screen_name của người dùng cần lấy friend
cursor Danh sách các friend đƣợc chia thành nhiều page. Mỗi page tối đa 5000 ID. Mặc định cursor=-1 trả về page đầu tiên.
count Tổng số ID trả về trong kết quả, tối đa 5000 ID đƣợc trả về trong 1 request
Bảng 3-5 Danh sách các tham số của friends/ids API 3.2.4.5. users/lookup
Users/lookup API trả về thông tin đầy đủ của người dùng nào đó, tối đa danh sách người dùng trong kết quả trả về lên tới 100. Ví dụ, để lấy thông tin đầy đủ của hai người dùng có user_id lần lượt là 202221864 và 194619638 client gửi request sau:
https://api.twitter.com/1.1/users/lookup.json?user_id=202221864,194619638.
Bảng 3-6 liệt kê một số tham số trong users/lookup API.
Tham số Mô tả
user_id Danh sách ID của người dùng cần lấy thông tin
screen_name Danh sách screen_name của người dùng cần lấy thông tin cursor Danh sách các friend đƣợc chia thành nhiều page. Mỗi page
tối đa 5000 ID. Mặc định cursor=-1 trả về page đầu tiên.
Bảng 3-6 Danh sách tham số của users/lookup API 3.2.4.6. trends/available và trends/place
Mỗi một địa điểm đƣợc hỗ trợ bởi Twitter có một định danh duy nhất gọi là WOEID. Để lấy đƣợc danh sách các địa điểm ta sử dụng trends/available API.
Hình 3-9 minh hoạ kết quả nhận đƣợc sau khi client gửi request https: api.twitter.com 1.1 trends available.json để lấy danh sách các địa điểm.
Hình 3-9 Danh sách các địa điểm đƣợc hỗ trợ bởi Twitter
Trends/place API trả về 50 chủ đề đang đƣợc chú ý (trending topic) ở một địa điểm nào đó. Tham số địa điểm chính là WOEID thu đƣợc từ trends/available API. Ví dụ, để lấy 50 chủ đề đang đƣợc chú ý trên toàn thế giới client gửi request sau: https://api.twitter.com/1.1/trends/place.json?id=1. Hình 3-10 minh hoạ kết quả trả về.