390
Глава 17 •
Работа с API
В точке
создается пустой список с именем
submission_dicts
для хранения сло-
варей. Далее программа перебирает идентификаторы 30 самых популярных статей
и выдает новый вызов API для каждой статьи, генерируя URL с текущим значением
submission_id
. Также выводится статус каждого запроса, чтобы мы могли про-
верить, успешно ли он был обработан.
В точке
создается словарь для текущей обрабатываемой статьи, в котором со-
храняется заголовок статьи, ссылка на страницу с ее обсуждением и количество
комментариев к статье. Затем каждый элемент
submission_dict
присоединяется
к списку
submission_dicts
.
Статьи Hacker News ранжируются по общей системе, основанной на нескольких
факторах: сколько раз за статью голосовали, сколько комментариев она получила
и давно ли была опубликована. Требуется отсортировать список словарей по ко-
личеству комментариев. Для этого мы используем функцию
itemgetter()
из
модуля
operator
. Мы передаем этой функции ключ
'comments'
, а она извлекает
значение, связанное с данным ключом, из каждого словаря в списке. Функция
sorted()
затем использует это значение для сортировки списка. Мы сортируем
список в обратном порядке, чтобы публикации с наибольшим количеством ком-
ментариев оказались на первом месте.
После того как список будет отсортирован, мы перебираем элементы
и выво-
дим для каждой из самых популярных статей три атрибута: заголовок, ссылку на
страницу обсуждения и текущее количество комментариев:
Status code: 200
id: 19155826 status: 200
id: 19180181 status: 200
id: 19181473 status: 200
...
Title: Nasa's Mars Rover Opportunity Concludes a 15-Year Mission
Discussion link: http://news.ycombinator.com/item?id=19155826
Comments: 220
Title: Ask HN: Is it practical to create a software-controlled model rocket?
Discussion link: http://news.ycombinator.com/item?id=19180181
Comments: 72
Title: Making My Own
USB Keyboard from Scratch
Discussion link: http://news.ycombinator.com/item?id=19181473
Comments: 62
...
Аналогичный процесс применяется для обращения и анализа информации из лю-
бого API. С такими данными вы сможете построить визуализацию, показывающую,
какие публикации вызывали наиболее активные обсуждения за последнее время.
Этот метод также лежит в основе приложений, предоставляющих специализиро-
ванные средства чтения таких сайтов, как Hacker News. Чтобы больше узнать об
информации, доступной через Hacker News API, посетите страницу документации
по
адресу
https://github .com/HackerNews/API/
.