Преобразование данных соскоба в фрейм данных (твиты weibo)

Добрый вечер,

Я только начал использовать Python для проекта (я хочу использовать данные социальных сетей с разных платформ, чтобы затем приступить к анализу), и мне нужно извлечь из Weibo разные данные твитов.

Я решил использовать эту библиотеку для этой работы. На примере веб-сайта мой код выглядит следующим образом:

from weibo_scraper import  get_weibo_tweets_by_name
for tweet in get_weibo_tweets_by_name(name='嘻红豆'):
    print(tweet)

Результат выглядит так:

{'card_type': 9, 'itemid': '1076033637346297_-_4341063131108312', 'scheme': 'https://m.weibo.cn/status/HheeR4Ek0?mblogid=HheeR4Ek0&luicode=10000011&lfid=1076033637346297', 'mblog': {'created_at': '12小时前', 'id': '4341063131108312', 'idstr': '4341063131108312', 'mid': '4341063131108312', 'can_edit': False, 'show_additional_indication': 0, 'text': '行吧//<a href=\'/n/夏正正\'>@夏正正</a>:我没有,我没说过。<span class="url-icon"><img alt=[感冒] src="//h5.sinaimg.cn/m/emoticon/icon/default/d_ganmao-babf39d6ae.png" style="width:1em; height:1em;" /></span>

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

from weibo_scraper import  get_formatted_weibo_tweets_by_name
result_iterator = get_formatted_weibo_tweets_by_name(name='嘻红豆', pages=None)
for user_meta in result_iterator:
    for tweetMeta in user_meta.cards_node:
        print(tweetMeta.mblog.text)

Со следующим результатом:

行吧//<a href='/n/夏正正'>@夏正正</a>:我没有,我没说过。<span class="url-icon"><img alt=[感冒] src="//h5.sinaimg.cn/m/emoticon/icon/default/d_ganmao-babf39d6ae.png" style="width:1em; height:1em;" /></span>//<a href='/n/勺布斯'>@勺布斯</a>:<span class="url-icon"><img alt=[二哈] src="//h5.sinaimg.cn/m/emoticon/icon/others/d_erha-0d2bea3a7d.png" style="width:1em; height:1em;" /></span>//<a href='/n/暴躁豆奶包'>@暴躁豆奶包</a>:逃避虽然舒服但没用//<a href='/n/by语冰'>@by语冰</a>: 难受//<a href='/n/-Lillyyyyyy-'>@-Lillyyyyyy-</a>:扎心

Отсюда я не уверен, как мне следует перейти к преобразованию данных в pandas dataframe (создание CSV?, преобразовать данные напрямую?).

Я хотел бы получить некоторые рекомендации по этому вопросу, если это возможно.

Большое спасибо за чтение.

1 ответ

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

tweets = []
from weibo_scraper import get_formatted_weibo_tweets_by_name

result_iterator = get_formatted_weibo_tweets_by_name(name='嘻红豆', pages=1)
for user_meta in result_iterator:
    for tweetMeta in user_meta.cards_node:
        tweets.append(tweetMeta.mblog.text)

df = pd.DataFrame(tweets)
with pd.option_context('display.max_rows', None, 'display.max_columns', None):
    print(df)
Другие вопросы по тегам