Статьи

Как использовать Restful Web API в Python

Это руководство познакомит вас с веб-API и научит вас, как использовать библиотеку Python запросов для получения и обновления информации в веб-API. В качестве рабочего примера вы также узнаете, как взаимодействовать с API Twitter.

API (интерфейс прикладного программирования) — это структура для построения HTTP-сервисов, которые могут использоваться самыми разными клиентами. Веб-API используют протокол HTTP для обработки запросов между клиентом и веб-сервером.

Вот некоторые из наиболее распространенных API, которые позволяют разработчикам интегрировать и использовать свою инфраструктуру:

  1. API Google
  2. API Twitter
  3. Amazon API
  4. API Facebook

Одна из наиболее важных причин использования API в отличие от других статических источников данных заключается в том, что он работает в режиме реального времени. Например, API Twitter, который мы собираемся использовать, будет получать данные в реальном времени из социальной сети.

Другое преимущество заключается в том, что данные постоянно меняются, поэтому, если вы будете загружать их через определенные промежутки времени, это займет много времени.

Чтобы использовать API, вам необходимо установить библиотеку Python для запросов. Requests — это HTTP-библиотека на Python, которая позволяет отправлять HTTP-запросы на Python.

В своем терминале введите:

1
pip install requests

Чтобы проверить успешность установки, введите следующую команду в интерпретаторе Python или в терминале:

1
import requests

Если ошибок нет, установка прошла успешно.

Метод GET используется для получения информации с веб-сервера. Давайте посмотрим, как сделать запрос GET, чтобы получить общедоступную временную шкалу GitHub.

Мы используем переменную req для хранения ответа на наш запрос.

1
2
import requests
req = requests.get(‘https://github.com/timeline.json’)

Теперь, когда мы отправили запрос на временную шкалу GitHub, давайте получим кодировку и содержимое, содержащиеся в ответе.

1
2
3
4
import requests
req = requests.get(‘https://github.com/timeline.json’)
req.text
u'{«message»:»Hello there, wayfaring stranger. If you\u2019re reading this then you probably didn\u2019t see our blog post a couple of years back announcing that this API would go away: https://git.io/17AROg Fear not, you should be able to get what you need from the shiny new Events API instead.»,»documentation_url»:»https://developer.github.com/v3/activity/events/#list-public-events»}
1
2
3
4
import requests
req = requests.get(‘https://github.com/timeline.json’)
req.encoding
‘utf-8’

Requests имеет встроенный JSON-декодер, который можно использовать для получения ответа на запрос в формате JSON.

1
2
3
4
5
import requests
import json
req = requests.get(‘https://github.com/timeline.json’)
req.json()
{u’documentation_url’: u’https://developer.github.com/v3/activity/events/#list-public-events’, u’message’: u’Hello there, wayfaring stranger.

Методы POST и PUT используются для создания и обновления данных. Несмотря на сходства, важно отметить, что использование запроса POST для обновления данных приведет к двум записям в хранилище данных, если будут представлены два идентичных элемента.

Создать данные (запрос POST):

1
r = requests.post(‘http://127.0.0.1/api/v1/add_item’, data = {‘task’:’Shopping’})

Обновить данные (запрос PUT):

1
r = requests.put(‘http://127.0.0.1/api/v1/add_item’, data = {‘task’:’Shopping at 2′})

В этом разделе вы узнаете, как получить учетные данные API Twitter, пройти аутентификацию в API Twitter и взаимодействовать с API Twitter с помощью Python.

Вы также сможете получать информацию из общедоступных аккаунтов Twitter, таких как твиты, подписчики и т. Д.

Нам нужно пройти проверку подлинности с помощью API Twitter, прежде чем мы сможем взаимодействовать с ним. Для этого выполните следующие действия:

  1. Перейдите на страницу приложений Twitter .
  2. Нажмите « Создать новое приложение» (для доступа к этой странице необходимо войти в Twitter). Если у вас нет учетной записи в Twitter, создайте ее .
Страница приложения Twitter

3. Создайте имя и описание для своего приложения и заполнителя веб-сайта.

Создание приложения Twitter

4. Найдите вкладку « Ключи и токены доступа» и создайте свой токен доступа.

Жетоны доступа к Twitter

5. Вам нужно принять к сведению Access token и Access Token secret Access token Access Token secret так как они понадобятся вам для аутентификации.

6. Вам также необходимо принять к сведению Consumer Key Consumer Secret .

Есть несколько библиотек, которые мы можем использовать для доступа к API Twitter, но мы собираемся использовать библиотеку python-twitter в этом руководстве.

Чтобы установить python-twitter, используйте:

1
$ pip install python-twitter

API Twitter открывается через класс twitter.Api , поэтому давайте создадим класс, передав наши токены и секретные ключи:

1
2
3
4
5
import twitter
api = twitter.Api(consumer_key=[consumer key],
                  consumer_secret=[consumer secret],
                  access_token_key=[access token],
                  access_token_secret=[access token secret])

Замените свои учетные данные выше и убедитесь, что они заключены в кавычки, например, consumer_key = ‘xxxxxxxxxx’, …)

Существует много способов взаимодействия с API Twitter, в том числе:

01
02
03
04
05
06
07
08
09
10
>>> api.PostUpdates(status)
>>> api.PostDirectMessage(user, text)
>>> api.GetUser(user)
>>> api.GetReplies()
>>> api.GetUserTimeline(user)
>>> api.GetHomeTimeline()
>>> api.GetStatus(status_id)
>>> api.DestroyStatus(status_id)
>>> api.GetFriends(user)
>>> api.GetFollowers()

Чтобы получить данные из Twitter, мы собираемся сделать вызов API с помощью объекта api мы создали выше.

Мы сделаем следующее:

  1. Создайте user переменную и установите ее равной действительному дескриптору Twitter (имя пользователя).
  2. Вызовите метод GetUserTimeline() для объекта api и передайте следующие аргументы.

  • действительный дескриптор Twitter
  • количество твитов, которые вы хотите получить ( count )
  • флаг для исключения ретвитов (это делается с помощью include_rts = false )

Давайте получим последние твиты из временной шкалы Envato Tuts + Code , исключая ретвиты.

1
2
3
4
5
6
7
8
9
import twitter
api = twitter.Api(consumer_key=»xxxxxxxxxxxx», consumer_secret=»xxxxxxxxxxxxxx»,
                  access_token_key=»314746354-xxxxx», access_token_secret=»xxxxxx»)
 
user = «@TutsPlusCode»
statuses = api.GetUserTimeline(
    screen_name=user, count=30, include_rts=False)
for s in statuses:
    print s.text

Метод GetUserTimeline() вернет список последних 30 твитов, поэтому мы перебираем этот список и печатаем наиболее важную информацию (контент) из каждого твита.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Here are 6 things that make Yarn the best #JavaScript package manager around.
Find out more about bar charts with part 3 of this series on creating interactive charts using Plotly.js.
See what’s new with Git support in Xcode 9. https://t.co/7gGu0PV1rV
Here’s how to create digital signatures with Swift.
In this quick tip, discover how to use Atom as a Git GUI.
Take a look at these 12 useful WordPress plugins for page layouts.
Learn more about line charts in part 2 of our series on creating interactive charts using Plotly.js.
Grab some great freebies with our special 10th birthday offer, https://t.co/AcIGTiC2re
In this latest in our series on coding a real-time app with NativeScript: Push notifications.
Get started with end-to-end testing in Angular using Protractor.
Learn how to build a to-do API with Node, Express, and MongoDB.
What is the Android activity lifecyle?
Learn all about object-oriented programming with JavaScript.
Have some fun with functions in this latest in our series on Kotlin.
Here’s how to make your JavaScript code robust with Flow.
Build your own to-do API with Node and Restify.
Here’s how to put your view controllers on a diet with MVVM.
Learn how to submit your new iOS app to the App Store.
This guide is the perfect place to build your skills and start writing plugins in Go.
Take a look at how to test components in Angular using Jasmine.
Learn to build your first #WordPress plugin in this awesome new course.
In this latest in our Android architecture components series: LiveData.
Take a deep dive into the Go type system.
Take a look at serverless logic with realm functions.
Part 4 of React crash course for beginners is out!
Learn about social login and Firebase in this new addition to the series.
Creating a blogging app using React part 6 is out!
What is GenServer and why should you care?
Check out part 3 in React crash course for beginners series.
Learn about packages and basic functions in this addition to our Kotlin from scratch series.

Чтобы получить подписчиков, мы используем метод GetFriends() .

1
2
3
4
5
6
7
8
9
import twitter
api = twitter.Api(consumer_key=»ftFL8G4yzQXUVzbUCdxGwKSjJ», consumer_secret=»KxGwBe6GlgSYyC7PioIVuZ5tFAsZs7q1rseEYCOnTDIjulT0mZ»,
                  access_token_key=»314746354-Ucq36TRDnfGAxpOVtnK1qZxMfRKzFHFhyRqzNpTx»,
                  access_token_secret=»7wZ1qHS0qycy0aNjoMDpKhcfzuLm6uAbhB2LilxZzST8w»)
 
user = «@TutsPlusCode»
friends = api.GetFriends(screen_name=user)
for friend in friends:
    print friend.name
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Derek Herman
Cyan Ta’eed
Dropbox
Stoyan Stefanov
The JavaScript Ninja
Dan Wellman
Brenley Dueck
Dave Ward
Packt
Karl Swedberg
Envato Tuts+ Web
Dev_Tips
Vahid Ta’eed
Jarel Remick
Envato Dev.
? Drew Douglass ?
Cameron Moll
SitePoint
John Resig
Skellie
Chris Coyier
Envato Tuts+
Envato Tuts+ Design
Collis

API Twitter может в значительной степени использоваться для анализа данных. Он также может быть использован для решения сложных проблем с большими данными и аутентификации приложений. Узнайте больше об API Twitter на сайте разработчиков Twitter .

Кроме того, не стесняйтесь посмотреть, что у нас есть в наличии для продажи и для изучения на рынке , и не стесняйтесь задавать любые вопросы и предоставлять ценные отзывы, используя канал ниже.