如何使用Tweepy提取Hashtag中的文本内容?
解决Twitter爬虫提取Hashtag纯文本的问题
你当前爬取Twitter数据时,tweet.entities['hashtags']返回的是包含索引和文本的字典列表,要只提取纯文本,需要遍历每个hashtag字典,取出其中的text字段。
原代码问题点
原代码中直接将tweet.entities['hashtags']存入数据,导致Hashtag列包含完整的字典结构,而非纯文本:
data = [] for tweet in tweets: data.append([tweet.user.screen_name, tweet.full_text, tweet.favorite_count, tweet.retweet_count, tweet.user.location, tweet.created_at, tweet.entities['hashtags']]) df = pd.DataFrame(data, columns = ['Username', 'Tweet', 'No. of Likes', 'No. of Retweets', 'Location', 'Date', 'Hashtag']) print(df)
修正后的代码
用列表推导式遍历tweet.entities['hashtags'],提取每个元素的text值:
data = [] for tweet in tweets: # 提取所有hashtag的纯文本,存为列表 hashtags = [tag['text'] for tag in tweet.entities['hashtags']] data.append([tweet.user.screen_name, tweet.full_text, tweet.favorite_count, tweet.retweet_count, tweet.user.location, tweet.created_at, hashtags]) df = pd.DataFrame(data, columns = ['Username', 'Tweet', 'No. of Likes', 'No. of Retweets', 'Location', 'Date', 'Hashtag']) print(df)
为什么之前的尝试无效
tweets.entities['hashtags']错误:tweets是推文集合,不是单条推文,必须遍历到单条tweet才能访问entities属性tweets['hashtags'][1][1]['text']错误:混淆了集合和单条推文的结构,且索引逻辑不符合Twitter API返回的数据格式
内容的提问来源于stack exchange,提问作者PAnsah
相关产品推荐
相关产品推荐

