Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP

Sử dụng New York Times API để thu thập dữ liệu

by
Difficulty:IntermediateLength:ShortLanguages:
This post is part of a series called How to Scrape Web Pages for Metadata.
How to Scrape Web Pages for Metadata

Vietnamese (Tiếng Việt) translation by Dai Phong (you can also view the original English article)

Final product image
What You'll Be Creating

Tuần trước, tôi đã viết bài giới thiệu về thu thập thông tin từ trang web, đề cập đến việc không thể thu thập dữ liệu từ trang web New York Times. Dịch vụ của The Times ngăn chặn nỗ lực để thu thập dữ liệu cơ bản của bạn. Nhưng có một cách giải quyết điều này bằng cách sử dụng New York Times API.

Gần đây tôi đã bắt đầu xây dựng một trang web cộng đồng dựa trên nền tảng Yii, tôi đã viết về nó trong Lập trình với Yii2: Xây dựng trang cộng đồng với bình luận, chia sẻ và bình chọn (Envato Tuts+). Tôi muốn làm cho nó dễ dàng để thêm các liên kết liên quan đến nội dung trên trang web. Mặc dù rất dễ dàng để dán các URL vào form, nhưng nó trở nên mất thời gian để cung cấp thông tin tiêu đề và nguồn.

Vì vậy trong hướng dẫn ngày hôm nay, tôi sẽ mở rộng code thu thập dữ liệu tôi đã viết gần đây để tận dụng New York Times API để thu thập các đề mục khi các liên kết Times được thêm vào.

Hãy nhớ rằng, tôi tham gia vào các chủ đề thảo luận ở dưới đây, vì vậy hãy cho tôi biết những gì bạn nghĩ! Bạn cũng có thể liên hệ với tôi trên Twitter @lookahead_io.

Bắt đầu

Đăng ký một khoá API

New York Times API - API Gallery Home Page

Trước tiên, hãy đăng ký để yêu cầu một khóa API:

New York Times API - API Sign Up Page

Sau khi bạn submit form, bạn sẽ nhận được khóa của bạn trong một email:

New York Times API - Email with API Key

Khám phá New York Times API

New York Times API - Categories

The Times cung cấp các API trong các thể loại sau:

  • Archive
  • Article Search
  • Books
  • Community
  • Geographic
  • Most Popular
  • Movie Reviews
  • Semantic
  • Times Newswire
  • TimesTags
  • Top Stories

Có rất nhiều. Và, từ trang Gallery, bạn có thể nhấp vào bất kỳ chủ đề nào để xem các tài liệu API cho từng thể loại:

New York Times API - Documentation of articlesearch json

The Times sử dụng LucyBot để cup cấp tài liệu API của họ, và có một FAQ hữu ích:

New York Times API - FAQ

Chúng thậm chí còn giới thiệu với bạn cách làm thế nào để nhanh chóng có được các giới hạn sử dụng API của bạn (bạn cần phải gắn khóa của bạn):

Ban đầu tôi gặp vấn đề trong việc hiểu tài liệu hướng dẫn—nó là một mô tả dựa trên tham số, không phải là một hướng dẫn lập trình. Tuy nhiên, tôi đăng một số câu hỏi lên trang GitHub của New York Times API, và họ đã nhanh chóng trả lời.

Làm việc với Article Search

Đối với phần hướng dẫn của ngày hôm nay, tôi sẽ tập trung vào việc sử dụng Article Search của NY Times. Về cơ bản, chúng ta sẽ mở rộng form Create Link từ hướng dẫn trước:

New York Times API - Create Link Form with NYT Story URL about Polar Bears

Khi người dùng nhấp vào Lookup, chúng ta sẽ tạo một yêu cầu ajax thông qua Link::grab($url). Dưới đây là jQuery:

Đây là phương thức controller và model:

Tiếp theo, hãy sử dụng khóa API của chúng ta để tạo một yêu cầu article search:

Và nó hoạt động khá trơn tru—đây là tiêu đề kết quả (bằng cách này, biến đổi khí hậu đang giết chết gấu Bắc cực và chúng ta nên quan tâm):

New York Times API - Create Link Form with NYT Story URL and Headline from Article Search API

Nếu bạn muốn biết chi tiết hơn từ yêu cầu API của bạn, chỉ cần thêm các đối số bổ sung vào yêu cầu ?fl=headline chẳng hạn như keywordslead_paragraph:

Đây là kết quả:

The response from the API request

Có lẽ tôi sẽ viết một thư viện PHP để phân tích tốt hơn NYT API trong phần sắp tới, nhưng code này sẵn dùng cho keywords và lead_paragraph:

Dưới đây là những gì nó hiển thị cho bài viết này:

Hy vọng rằng, điều đó bắt đầu mở rộng khả năng sáng tạo của bạn về cách làm thế nào để sử dụng các hàm API này. Thật thú vị với những gì mà bạn có thể làm lúc này.

Tóm lại

New York Times API là một API rất hữu ích, và tôi vui mừng khi thấy họ cung cấp nó cho cộng đồng các nhà phát triển. Nó cũng được làm mới để có được sự hỗ trợ API nhanh chóng thông qua GitHub—tôi chỉ không mong đợi điều này. Hãy nhớ rằng nó là dành cho các dự án phi thương mại. Nếu bạn có một số ý tưởng kiếm tiền, hãy gửi cho họ một bức thư ngắn để xem họ có làm việc với bạn hay không. Các nhà xuất bản đang háo hức với nguồn thu nhập mới.

Tôi hy vọng bạn thấy các bài về thu thập dữ liệu trang web là hữu ích và tận dụng chúng trong các dự án của bạn. Nếu bạn muốn học phần này một cách trực quan hơn, bạn có thể thử một số trang trên trang web của tôi, Active Together.

Xin vui lòng chia sẻ bất kỳ suy nghĩ và phản hồi của bạn trong phần bình luận. Bạn cũng luôn luôn có thể liên hệ trực tiếp với tôi trên Twitter @lookahead_io. Và hãy kiểm tra trang hướng dẫn của tôi và loạt bài khác, Xây dựng Startup của bạn với PHPLập trình với Yii2.

Các nguồn tài nguyên liên quan

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.