В этом посте мы будем использовать пакет python PRAW для очистки Reddit для получения медицинской информации. Требуются базовые знания синтаксиса Python.
Сначала установите PRAW:
pip install praw
Далее вам необходимо зарегистрировать приложение соответствующего типа здесь:
После перенаправления на страницу регистрации зарегистрируйтесь, создав имя пользователя и пароль.
Затем вы должны создать новое приложение:
После создания приложения вы должны получить свой client_id и секретный ключ.
Затем давайте импортируем необходимые пакеты:
import praw import pandas as pd
Затем мы создаем аутентифицированный экземпляр Reddit:
r = praw.Reddit(client_id = 'AbCd1234!', client_secret = '4321dCbA!', username= 'username101', password= 'password101!', user_agent='someagentinfo ')
А теперь давайте попробуем вытащить несколько сообщений, связанных с медицинским страхованием:
while True: subreddit = r.subreddit('healthinsurance') for submission in subreddit.hot(limit=10): op_text = submission.selftext.lower() print(op_text)
Это выводит что-то вроде:
Мы также можем получать сообщения о страховании здоровья. Для Aetna у нас есть:
while True: subreddit = r.subreddit('aetna') for submission in subreddit.hot(limit=10): op_text = submission.selftext.lower() print(op_text)
Вы можете сделать то же самое для Medicare:
while True: subreddit = r.subreddit('medicare') for submission in subreddit.hot(limit=10): op_text = submission.selftext.lower() print(op_text)
Мы можем определить функцию для легкого извлечения сообщений, связанных с темой:
def get_post(topic): title = [] ups = [] downs = [] visited = [] selftext = [] time_list = [] subreddit = r.subreddit(topic) for submission in subreddit.hot(limit = None): if not submission.stickied: title.append(submission.title) ups.append(submission.ups) downs.append(submission.downs) visited.append(submission.visited) selftext.append(submission.selftext) time_list.append(datetime.datetime.fromtimestamp(submission.created)) df = pd.DataFrame({'Title': title, 'selftext': selftext, 'ups': ups, 'downs': downs, 'visited': visited, 'time': time_list}) return df
Если мы вызовем функцию с помощью «Aetna», мы получим:
df_aetna = get_post('aetna') print(df_aetna.head())
И для «Медикэр»:
df_medicare = get_post('medicare') print(df_medicare.head())
Вы можете записать эти фреймы данных в файлы csv следующим образом:
df_aetna.to_csv("aetna.csv") df_medicare.to_csv("medicare.csv")
Спасибо за чтение. Код из этого поста доступен в GitHub.