You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Tweepy爬取话题推文时转发文重复原推文点赞/转发数问题

解决方案

问题根源

你当前的代码在处理转发推文时,错误地将原推文的点赞数(tweet.retweeted_status.favorite_count)填充到了转发推文的Likes列,同时Retweets列实际是原推文的总转发数,导致所有同一条原推文的转发都显示相同的点赞/转发数据,造成冗余。

修正方案

1. 正确区分转发推文与原推文的统计数据

修改代码中数据填充的逻辑,确保转发推文记录的是自身的点赞数和转发数,而非原推文的:

from os import access
import tweepy 
import configparser    
import pandas as pd

api_key = ''
api_key_secret = ''

access_token = ''
access_token_secret = ''

auth = tweepy.OAuthHandler(api_key, api_key_secret)
auth.set_access_token(access_token, access_token_secret)

api = tweepy.API(auth)

keywords = '#AsiaCup2022'
limit = 10000

tweets = tweepy.Cursor(api.search_tweets, q = keywords, count = 100, tweet_mode = 'extended').items(limit)

columns = ['User', 'Tweet', 'Likes', 'Retweets', 'Is_Retweet', 'Original_Tweet_ID']
data = []

for tweet in tweets:
    is_retweet = hasattr(tweet, 'retweeted_status')
    original_tweet_id = tweet.retweeted_status.id_str if is_retweet else tweet.id_str
    
    # 转发推文的点赞是自身的favorite_count,转发数是自身的retweet_count
    likes = tweet.favorite_count
    retweets = tweet.retweet_count
    
    # 若需要保留原推文的统计数据,可额外添加列
    # original_likes = tweet.retweeted_status.favorite_count if is_retweet else None
    # original_retweets = tweet.retweeted_status.retweet_count if is_retweet else None
    
    data.append([
        tweet.user.screen_name,
        tweet.full_text,
        likes,
        retweets,
        is_retweet,
        original_tweet_id
    ])
    
df = pd.DataFrame(data, columns=columns)
df.to_excel("Cup2022.xlsx")

2. 可选:过滤转发推文,仅保留原创内容

如果你的分析不需要转发推文,可以直接在爬取时过滤,减少冗余数据:

在search_tweets的q参数中加入-filter:retweets:

tweets = tweepy.Cursor(api.search_tweets, q = f"{keywords} -filter:retweets", count = 100, tweet_mode = 'extended').items(limit)

这样爬取的内容只会包含带指定话题的原创推文,彻底避免转发带来的冗余问题。

说明

  • 修改后的代码新增了Is_Retweet和Original_Tweet_ID列,方便你后续区分转发内容及关联原推文;
  • 若需要同时分析原推文和转发的互动数据,可以取消代码中注释的部分,添加原推文的统计列,这样既不会混淆数据,也能保留完整分析维度。

内容的提问来源于stack exchange,提问作者Fakhr Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 12:39:50