Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 260

ложность этому, если сайт предлагает API для своих данных, эти данные становятся

доступными для клиентских программ. API меняются реже, чем макеты веб-страниц,

поэтому изменения в клиентах также меньше распространены. Быстрый чистый

конвейер также позволяет проще создавать гибридные приложения — комбинации,

которые не предвиделись, но могут быть полезны и даже прибыльны.

Простейшим API является веб-интерфейс, который предоставляет данные

в структурированном формате вроде JSON или XML (но не в текстовом формате

или формате HTML). API может быть минимальным или полнофункциональным

RESTful API (это понятие рассматривается в подразделе «API для Сети и Re-

presentational State Transfer» раздела «Веб-сервисы и автоматизация» главы 9), это

позволит найти еще один выход для байтов, не знающих устали.

В самом начале этой книги вы видели веб-API — этот интерфейс выбрал самые

популярные видеоролики с YouTube. Следующий пример теперь покажется вам

более осмысленным, поскольку вы уже прочитали о веб-запросах, JSON, словарях,

списках и разбиении:

import requests

url = "https://gdata.youtube.com/feeds/api/standardfeeds/top_rated?alt=json"

response = requests.get(url)

data = response.json()

for video in data['feed']['entry'][0:6]:

print(video['title']['$t'])

API особенно полезны для получения данных с популярных сайтов социальных

медиа вроде Twitter, Facebook и LinkedIn. Все эти сайты предоставляют бесплатные

API, но требуют от вас регистрации и получения ключа (долго генерируемой тек-

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

соединении. Ключ помогает сайту определить, кто получает доступ к данным.

Он также может использоваться для того, чтобы ограничить трафик запросов. При-

мер с YouTube, который вы только что видели, не требует использования API-ключа

для поиска. Однако ключ потребуется, если вы будете делать вызовы, обновляющие

данные на YouTube.

У следующих брендов имеются интересные API служб:

 New York Times (http://developer.nytimes.com/);

 YouTube (http://gdata.youtube.com/demo/index.html);

Сети

335

 Twitter (https://dev.twitter.com/docs/twitter-libraries);

 Facebook (https://developers.facebook.com/tools/);

 Weather Underground (http://www.wunderground.com/weather/api/);

 Marvel Comics (http://developer.marvel.com/).

Примеры API для карт вы можете увидеть в приложении Б, примеры других

API — в приложении В.

Удаленная обработка

Большинство примеров этой книги показывали, как вызвать код Python на одной

машине зачастую в рамках одного процесса. Но Python позволяет вызывать код на

других машинах, если они входят в локальную сеть. Сеть компьютеров дает вам

доступ к большему количеству процессов и/или потоков.

Удаленные вызовы процедур

Удаленные вызовы процедур (Remote Procedure Call, RPC) выглядят как обычные

функции, но выполняются на удаленных машинах по всей сети. Вместо того чтобы

вызывать RESTful API и передавать туда аргументы, закодированные в URL или