Это руководство познакомит вас с веб-API и научит вас, как использовать библиотеку Python запросов для получения и обновления информации в веб-API. В качестве рабочего примера вы также узнаете, как взаимодействовать с API Twitter.
Введение в веб-API
API (интерфейс прикладного программирования) — это структура для построения HTTP-сервисов, которые могут использоваться самыми разными клиентами. Веб-API используют протокол HTTP для обработки запросов между клиентом и веб-сервером.
Вот некоторые из наиболее распространенных API, которые позволяют разработчикам интегрировать и использовать свою инфраструктуру:
- API Google
- API Twitter
- Amazon API
- API Facebook
Одна из наиболее важных причин использования API в отличие от других статических источников данных заключается в том, что он работает в режиме реального времени. Например, API Twitter, который мы собираемся использовать, будет получать данные в реальном времени из социальной сети.
Другое преимущество заключается в том, что данные постоянно меняются, поэтому, если вы будете загружать их через определенные промежутки времени, это займет много времени.
Использование библиотеки запросов
Чтобы использовать API, вам необходимо установить библиотеку Python для запросов. Requests — это HTTP-библиотека на Python, которая позволяет отправлять HTTP-запросы на Python.
Установить запросы
В своем терминале введите:
1
|
pip install requests
|
Чтобы проверить успешность установки, введите следующую команду в интерпретаторе Python или в терминале:
1
|
import requests
|
Если ошибок нет, установка прошла успешно.
Как получить информацию из веб-API
Метод 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.
|
Как создавать и обновлять информацию в веб-API
Методы 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 REST
В этом разделе вы узнаете, как получить учетные данные API Twitter, пройти аутентификацию в API Twitter и взаимодействовать с API Twitter с помощью Python.
Вы также сможете получать информацию из общедоступных аккаунтов Twitter, таких как твиты, подписчики и т. Д.
Аутентификация с помощью Twitter
Нам нужно пройти проверку подлинности с помощью API Twitter, прежде чем мы сможем взаимодействовать с ним. Для этого выполните следующие действия:
- Перейдите на страницу приложений Twitter .
- Нажмите « Создать новое приложение» (для доступа к этой странице необходимо войти в Twitter). Если у вас нет учетной записи в Twitter, создайте ее .
3. Создайте имя и описание для своего приложения и заполнителя веб-сайта.
4. Найдите вкладку « Ключи и токены доступа» и создайте свой токен доступа.
5. Вам нужно принять к сведению Access token
и Access Token secret
Access token
Access Token secret
так как они понадобятся вам для аутентификации.
6. Вам также необходимо принять к сведению Consumer Key
Consumer Secret
.
Есть несколько библиотек, которые мы можем использовать для доступа к API Twitter, но мы собираемся использовать библиотеку python-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’, …)
Опрос Twitter
Существует много способов взаимодействия с 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
мы создали выше.
Мы сделаем следующее:
- Создайте
user
переменную и установите ее равной действительному дескриптору Twitter (имя пользователя). -
Вызовите метод
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 .
Кроме того, не стесняйтесь посмотреть, что у нас есть в наличии для продажи и для изучения на рынке , и не стесняйтесь задавать любые вопросы и предоставлять ценные отзывы, используя канал ниже.