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

如何使用Tweepy获取多个指定用户含特定关键词的推文

Tweepy 整合指定账号筛选+关键词检索的实现方法

核心实现逻辑

Twitter 搜索API原生支持在搜索查询语句中直接限定推文发布者,不需要拆分调用接口、也不需要拉取全量数据后本地过滤。你之前添加#id="Apple"参数无效,是因为完全不符合Twitter的搜索语法规则。

搜索语法规则

直接在原有搜索关键词的基础上,拼接用户筛选条件即可,相关语法如下:

  • 限定单个发布账号:使用from:账号名格式,账号名填写@后面的唯一标识,比如苹果官方账号是@Apple,对应筛选条件写from:Apple
  • 同时限定多个发布账号:用OR连接多个from条件,整体用括号包裹,比如要同时匹配苹果、微软、奈飞的账号,就写(from:Apple OR from:Microsoft OR from:Netflix)
  • 所有条件拼接在同一个search_query字符串里,服务端会直接返回同时满足账号、关键词、时间范围要求的结果,不需要修改Cursor的其他传参。

修改后的完整代码

import tweepy as tw
import pandas as pd
# 替换为你自己的Twitter API凭证
my_api_key = "YOUR_API_KEY"
my_api_secret = "YOUR_API_SECRET"
# 鉴权
auth = tw.OAuthHandler(my_api_key, my_api_secret)
api = tw.API(auth, wait_on_rate_limit=True)

# 拼接搜索条件:指定账号+指定关键词+过滤转发
search_query = "(from:Apple OR from:Microsoft OR from:Netflix) (#blm OR blm) -filter:retweets"

# 调用接口拉取推文
tweets = tw.Cursor(api.search,
              q=search_query,
              lang="en",
              since="2020-05-24",
              until="2020-12-01",
              exclude_replies=False,
              tweet_mode='extended').items()

# 存储结果
tweets_copy = []
for tweet in tweets:
    tweets_copy.append(tweet)
    
print("Total Tweets fetched:", len(tweets_copy))

补充说明

  • 你当前使用的是Twitter v1.1的免费标准搜索接口,默认只能回溯最近7天的推文,无法拉取2020年的历史数据,如果需要抓取更早的内容,需要申请付费的全量归档搜索权限。
  • 不推荐用api.user_timeline拉取指定用户全量推文后再本地过滤关键词的方案,这种方式会拉取大量无关内容,很容易触发接口速率限制,效率远低于服务端直接过滤的搜索方案。
  • 注意区分账号的唯一ID和显示昵称,比如账号显示名可能是“Apple Official”,但唯一ID是Apple,筛选条件里必须填唯一ID才能匹配到正确结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 08:24:26