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

Как упоминалось два месяца назад в этом посте, в своем стремлении научиться программировать на Python я обнаружил Hacker News API как идеальный способ узнать о доступе к API и сделать первые шаги в анализе и визуализации данных. API достаточно просто устроен и не требует авторизации (хотя впоследствии мне удалось покорить и Reddit API, более сложное и требующее авторизации через OAuth).

Меня давно интересовала динамика, с которой статьи, отправленные пользователем Hacker News, попадают на первую страницу сайта. Так что я пошел дальше и предался маленькому проекту, чтобы узнать.

Во-первых, я написал скрипт на Python (доступный здесь), который проверяет первую страницу Hacker News через API, то есть 30 самых популярных элементов, раз в минуту, и фиксирует каждый новый элемент, появляющийся там. Затем сценарий сохраняет метаданные об этом элементе (название, имя пользователя, оценка, время и т. д.) в файле .csv (доступно здесь), при этом каждый новый элемент добавляется в конец файла.

Я запустил скрипт с помощью фантастического сервиса Python Anywhere, который предлагает бесплатные учетные записи для программ Python, не требующих слишком много ресурсов. Я бы заплатил, если бы это было необходимо, но мой сценарий не выходил за рамки. Я мог бы также запустить сценарий локально на своем компьютере, но, передав его в облако, я могу перевести свой ноутбук в режим ожидания, когда он не используется. Сценарий иногда прерывался без видимой причины, возможно, из-за некоторых ограничений доступа со стороны Hacker News API или из-за слабости моего кода. Но простой перезапуск продолжал отслеживать и захватывать новые записи на главной странице Hacker News. С помощью этого процесса я собрал моментальные снимки 772 элементов, которые попали на первую страницу Hacker News за последние 2 недели, за исключением нескольких захваченных элементов, вручную размещенных на первой странице сотрудниками Hacker News/Y Combinator, и некоторых элементов, которые оказалось ошибочным. В целом, что касается нескольких элементов, которые появлялись на первой странице, когда они уже имели оценку более 20 (см. первую диаграмму), вполне вероятно, что они хотя бы кратко присутствовали на первой странице раньше.

Чтобы убедиться, что скрипт работает правильно, я заставляю его показывать сообщение о состоянии каждую минуту и ​​выделять, когда новый элемент на главной странице Hacker News был сохранен в файле .csv

Параллельно я создал второй скрипт Python для анализа и визуализации данных. Я работал над различными учебными пособиями для Matplotlib, библиотеки Python, которая создает графики (или диаграммы, или как бы вы это ни называли), прочитал много сообщений в Stack Overflow, выполнил множество поисковых запросов в Интернете и просто следовал методу проб и ошибок.

Результаты, конечно, не очень революционны. Хотя я очень хочу приобрести больше навыков для анализа и визуализации данных, довольно тривиальные графики ниже — это только первые шаги. Я даже не уверен, что эта информация хоть как-то информативна для пользователей Hacker News. Тем не менее, это лично открыло мне некоторые вещи, о которых я не знал, например, что многие элементы появляются на главной странице уже после 2 голосов, и что на первой странице НЕ доминируют несколько влиятельных участников, которые представляют львиную долю. элементов, отображаемых там.

В Hacker News FAQ упоминается, что критерием попадания на первую страницу являются не только количество голосов, прошедших с момента публикации истории, но и другие факторы, включая вмешательство модератора. При взгляде на графики ниже это становится очевидным, так как некоторые элементы появляются на первой странице только через много часов после того, как они были опубликованы, в то время как большинство попадают туда довольно быстро.

Если у вас есть идеи для дальнейшего анализа главной страницы Hacker News, сообщите мне об этом в комментариях. Если вы хотите взглянуть на скрипт для анализа и построения графика данных, вы найдете его здесь. Обратите внимание, что из-за моего статуса новичка весьма вероятно, что я использую довольно неэффективный и запутанный код, игнорирую рекомендуемые библиотеки (возможно, мне следовало бы использовать Pandas или NumPy, например) или что я использую ненужное жесткое кодирование. Я рад любому предложению по улучшению, более эффективному или более короткому коду.

И облако тегов на основе слов из всех 772 заголовков. Google упоминается в 28 названиях. Фейсбук только в 5.

И что дальше на моей тарелке? Помимо попыток усовершенствовать код для этого анализа, я изучаю QPX Express API Google для получения данных о ценах на авиабилеты и маршрутах… Как человеку, который страстно может откладывать взлом рейсов и путешествий, это кажется мне идеальной задачей. .

Мартин Вейгерт.

=======
Подпишитесь на еженедельную рассылку, наполненную замечательными материалами о цифровом мире. "Пример". И не забудьте попробовать еженедельного бота meshedsociety в Messenger.

Первоначально опубликовано на сайте meshedsociety.com 19 июля 2017 г.