Реддит
Парсинг постов Reddit с использованием Python
Установка модуля
pip3 install praw
Создание приложения Reddit
-
Для извлечения данных с Reddit нам необходимо создать приложение Reddit. Вы можете создать новое приложение Reddit (https://www.reddit.com/prefs/apps).
-
Нажмите на "are you a developer? create an app...".
-
Введите имя и описание по вашему выбору. В поле перенаправления URI введите http://localhost:8080
Парсинг субреддитов Reddit
- Извлеките некоторую информацию из субреддита redditdev с помощью следующего кода на Python.
import praw
import pandas as pdreddit_read_only = praw.Reddit(client_id="2wE9Oc0qLiU-cvmR2v0UnA", # ваш идентификатор клиента
client_secret="6s1KJiSgkJFeRl4TswtgFcTzQo-UyQ", # ваш секретный ключ клиента
user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36") # ваш user agentsubreddit = reddit_read_only.subreddit("redditdev")# Отобразить имя субреддита
print("Имя субреддита:", subreddit.display_name)# Отобразить заголовок субреддита
print("Заголовок:", subreddit.title)# Отобразить описание субреддита
print("Описание:", subreddit.description)
Извлечение 5 популярных постов из подраздела Python на Reddit
subreddit = reddit_read_only.subreddit("Python")
for post in subreddit.hot(limit=5):
print(post.title)
print()
Сохранение лучших постов подраздела Python в pandas-таблицу
posts = subreddit.top("month")
# Парсинг лучших постов текущего месяца
posts_dict = {"Заголовок": [], "Текст поста": [],
"ID": [], "Оценка": [],
"Количество комментариев": [], "URL поста": []
}
for post in posts:
# Заголовок каждого поста
posts_dict["Заголовок"].append(post.title)
# Текст внутри поста
posts_dict["Текст поста"].append(post.selftext)
# Уникальный ID каждого поста
posts_dict["ID"].append(post.id)
# Оценка поста
posts_dict["Оценка"].append(post.score)
# Общее количество комментариев внутри поста
posts_dict["Количество комментариев"].append(post.num_comments)
# URL каждого поста
posts_dict["URL поста"].append(post.url)# Сохранение данных в pandas-таблицу
top_posts = pd.DataFrame(posts_dict)
top_posts
Пример данных в форматах JSON и CSV
- CSV
- JSON