Рубрики
Без рубрики

Какое лучшее время публиковать на dev.to? Ответ, поддерживаемый с данными 🕰🦄🤷♂️

Dev.to – замечательная платформа для блога, которая возникла несколько лет назад. Я люблю писать за это и готов … Теги с Python, WebDev, начинающими, Meta.

Dev.to – замечательная платформа для блога, которая возникла несколько лет назад. Я люблю писать за это и читать контент, опубликованный там. Но Что мне больше всего нравится, и я думаю, что всем нравится больше всего, это сообщество, которое было построено на платформе.

Известно, что сообщество много взаимодействуют с плакатом в разных видах и комментариях. На Dev.to нет «кармы» на dev.to, но один из способов измерять популярность, счет, пост, посмотрев на количество взаимодействий, которые имел этот пост с сообществом.

Количество комментариев, и, конечно, количество лайков, которые на платформе разделены на 3 категории: Unicorn 🦄, как ❤ и Bookmark 📕.

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

Вот что я сделал:

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

Недавно я заметил, глядя на DOM, что каждая статья имела доступное удостоверение личности.

Я также знал, что есть общедоступная конечная точка, которая позволяет вам получить информацию о пользователе, которая выглядит так:

http https://dev.to/api/users/

Так что естественно я пытался сделать то же самое со статьей и …

http https://dev.to/api/articles/81371
HTTP/1.1 200 OK
{
    "body_html": "
\n\n

The other day I was touching up a PR that had been approved and was about to merge and deploy it when, out of habit, I checked the clock. It was 3:45pm, which for me, was past my \"merge before\" time of 3:30pm. I decided to hold off and wait until the next morning.

\n\n

The whole process got me thinking. Does anyone else have their own personal merge or deploy policies? Is there a time before or after when you say, not today? Is there a day of the week you don't like to merge stuff. A lot of people joke about read-only Fridays, but I have to admit, I kinda follow that rule. Anything remotely high risk I wait until Monday to merge.

\n\n

What's your personal merge/deploy policy?

\n\n\n", "canonical_url": "https://dev.to/molly_struve/whats-your-personal-mergedeploy-policy-30mi", "comments_count": 6, "cover_image": "https://res.cloudinary.com/practicaldev/image/fetch/s--o6RV_02d--/c_imagga_scale,f_auto,fl_progressive,h_420,q_auto,w_1000/https://thepracticaldev.s3.amazonaws.com/i/oqg9vv4u2c5orc3y2n6n.png", "description": "What's your personal merge/deploy policy?", "id": 81371, "ltag_script": [], "ltag_style": [], "path": "/molly_struve/whats-your-personal-mergedeploy-policy-30mi", "positive_reactions_count": 13, "published_at": "2019-03-22T22:19:36.651Z", "readable_publish_date": "Mar 22", "slug": "whats-your-personal-mergedeploy-policy-30mi", "social_image": "https://res.cloudinary.com/practicaldev/image/fetch/s--MJYBx9D---/c_imagga_scale,f_auto,fl_progressive,h_500,q_auto,w_1000/https://thepracticaldev.s3.amazonaws.com/i/oqg9vv4u2c5orc3y2n6n.png", "tag_list": "discuss", "title": "What's your personal merge/deploy policy?", "type_of": "article", "url": "https://dev.to/molly_struve/whats-your-personal-mergedeploy-policy-30mi", "user": { "github_username": "mstruve", "name": "Molly Struve", "profile_image": "https://res.cloudinary.com/practicaldev/image/fetch/s--UrIkLrxe--/c_fill,f_auto,fl_progressive,h_640,q_auto,w_640/https://thepracticaldev.s3.amazonaws.com/uploads/user/profile_image/119473/9e74ee0e-f472-4c33-bfb4-79937e51f766.jpg", "profile_image_90": "https://res.cloudinary.com/practicaldev/image/fetch/s--apWeHy1C--/c_fill,f_auto,fl_progressive,h_90,q_auto,w_90/https://thepracticaldev.s3.amazonaws.com/uploads/user/profile_image/119473/9e74ee0e-f472-4c33-bfb4-79937e51f766.jpg", "twitter_username": "molly_struve", "username": "molly_struve", "website_url": "https://www.mollystruve.com" } }

И Бинго !!

Все, что мне нужно было сделать сейчас: номер 1, найдите, если идентификатор статьи, где последовательный, и 2 если 1 был правдой, найдите самую последнюю новую статью. Обе вещи было легко проверить. Мне просто пришлось открыть свой инспектор браузера пару раз на последние статьи.

То, что я сделал дальше, звонил на этот API 94K раз, используя STRAPPY и хранение информации в четкой .csv. . Больше об этом в будущем пост.

Для этого я использовал ScrapingBee, A Web Scraping Tool. Я недавно запустил 😎.

Из 94K API звонков, почти половина из них вернула 404: Ресурс не найден Отказ Я думаю, это означает, что половина создаваемых статей никогда не публикуется, но я не уверен в этом. У меня все еще имели ~ 40K точек данных, что было более чем достаточно, чтобы доказать свою точку зрения.

Каждый ряд в моем CSV умножает полезную информацию, но для того, что я искал, мне нужно только две вещи: число или как и дата публикации. Надеюсь, эти две вещи были возвращены API, посмотрите Plansive_reation_count и опубликовано_at в предыдущем фрагменте.

Работать с данными, которые я использовал Pandas, хорошо знаете библиотеку Python, это даже один из Самый известный пакет Python на Github Отказ

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

Загрузка данных из CSV с пандами очень проста:

import pandas as pd
df = pd.read_csv('./output.csv')

Как я хотел узнать лучшее время/день, чтобы опубликовать на dev.to, мне нужно трансформировать опубликовано_at Столбец в 2 других столбцах: day_of_week («Пн», «вт», …) и час Отказ

Пандас позволяет легко добавлять, преобразовывать и манипулировать данными. Все, что мне нужно сделать, это было те несколько строк:

df['hour'] = pd.to_datetime(df['published_at']).dt.hour

days_arr = ["Mon","Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]

def get_day_of_week(x):
    date = pd.to_datetime(x)
    return days_arr[date.weekday()]

df['day_of_week'] = df['published_at'].apply(get_day_of_week)

Все мои данные теперь хранятся в DataFrame, основная структура данных использовала мои панды, отсюда и название: DF Отказ

У меня была теперь вся нужна информация.

Вот что было в моем датафараме:

0 Черт возьми 4
1 Понедельник 34
22 солнце 41
17 Черт возьми 9

Каждая строка, представляющая один пост, у меня было около 38К линий.

То, что я естественным образом сделал суммирование PILIUCE_RACICE_COUNT. днем и часом.

Вот как это сделать в пандах:

aggregated_df = df.groupby(['day_of_week', 'hour'])['positive_reaction_count'].sum()

И теперь мой DF выглядел так:

понедельник 0 4110
1 3423
2 2791
22 4839
23 3614
Воскресенье 0 110
1 423
2 731
22 4123
23 2791

Отлично, чтобы иметь именно данные в формате, которые мне нужны, необходима еще несколько работ. В основном вращающиеся колонны вокруг.

pivoted_df = aggregated_df.reset_index().pivot('hour', 'day_of_week', 'positive_reaction_count')

Теперь мой DF имеет этот вид:

4110 5208 5071 0
3423 3230 4336 1
2791 1882 3056 2
3614 3149 4574 23

И теперь, наконец, я могу использовать Морной Пакет демонстрирует хорошую тепловую карту.

import seaborn as sns
sns.heatmap(pivoted_sorted , cmap="coolwarm")

А вот что я получил:

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

Но сначала, потому что мы говорим о временах, нам нужно знать, о каком часовом поясе мы говорим о. Если вы посмотрите внимательно на Опубликовано_at ":" 2019-03-22T22: 19: 36.651Z , вы заметите Z в конце временной строки. Ну это Z Указывает, что эта строка времени представляет время UTC или часовой пояс Z эпо.

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

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

Что такое шоу Heatmap – это время дня, когда мы наблюдаем больше всего нравится. Не учитывает тот факт, что больше постов автоматически значит больше нравится.

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

Эта разница имеет решающее значение, потому что то, что мы пытаемся узнать, – это лучшее время для размещения, чтобы максимизировать наши любит, и эта карта не может помочь нам.

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

Благодаря пандам мы только изменили одну маленькую вещь в нашем коде:

# sum -> mean
aggregated_df = df.groupby(['day_of_week', 'hour'])['positive_reaction_count'].mean()

А вот новая тепловая карта:

Как видите, тепловая карта очень иначе и гораздо более эксплуатируется, чем предыдущая. Теперь мы наблюдаем за узорами полоса. Есть этот широкий синий, охватывающий с понедельника по воскресенье с 4 до 10 утра. Мы также наблюдаем пик активности во время днем UTC.

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

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

Спасибо за чтение:

Я надеюсь, вам понравился этот пост.

Эта серия далеко не более, у меня есть много дополнительной информации, чтобы показать вам, связанные с этим набором данных.

Пожалуйста, скажите в комментариях, если вы хотите, чтобы конкретный аспект DEV.TO анализируются данные и не забудьте подписываться На мой бюллетень, есть еще больше (и вы также получите первые главы моей следующей электронной книги бесплатно 😎).

Если вы хотите продолжить читать о некоторых советах Python, пойти туда, вам может понравиться:).

Если вам нравится JS, я опубликовал то, что вам может понравиться.

И если вы предпочитаете Git, я забрал вас.

Оригинал: “https://dev.to/daolf/-what-is-the-best-time-to-post-on-devto-a-data-backed-answer–1kob”