使用Twint抓取推文时全球范围结果少于指定城市的原因咨询
原因分析及解决建议
核心原因
- Twint本身无Twitter官方API权限,是通过爬取公开索引数据获取推文,全球范围检索2010-2015年这类较早的历史数据时,会触发Twitter的反爬阈值限制,仅能返回极少量匹配结果;拆分到单个城市检索时,单次检索的范围更小、请求权重更低,更难触发反爬,能拿到更多未被全局检索限制的历史数据。
- #MarutiSuzuki是印度本土汽车品牌,相关推文绝大多数发自印度地区,Twitter对早期带位置标签的推文的区域索引库留存率远高于全局通用索引库,很多2010-2015年的印度本地推文没有被纳入全球检索索引,但保留在了对应城市的区域位置索引中,按城市检索时会命中这部分全局检索无法获取的数据。
- 你现有代码中所有城市的抓取结果都写入同一个
my_finding.csv,部分覆盖多城市的位置标签的推文会被多次检索重复命中,导致统计的数量有虚高,建议先对结果按推文id去重后再做量级对比。
去重参考代码
import pandas as pd # 读取原始抓取结果 df = pd.read_csv("my_finding.csv") # 按推文id去重 df_unique = df.drop_duplicates(subset="id", keep="first") # 输出去重后的结果 df_unique.to_csv("maruti_suzuki_tweets_unique.csv", index=False)
内容的提问来源于stack exchange,提问作者mohit sai
相关产品推荐
相关产品推荐

