能否使用Tweepy访问Twitter Premium API?
能否用Tweepy访问Twitter高级API服务?
当然可以!你完全不用被迫切换到简陋的searchtweets库——Tweepy从较新的版本(v4+)开始就支持访问Twitter API的Premium/Enterprise级服务,而且用起来和你熟悉的常规API调用逻辑一致,只是需要注意认证方式和端点的区别。下面是具体的实现步骤和示例:
1. 先确保你用的是最新版Tweepy
首先升级到最新版本,避免旧版本缺少高级API的支持:
pip install --upgrade tweepy
2. 认证方式:区分OAuth1和Bearer Token
Twitter Premium服务的认证和免费版略有不同,主要分两种场景:
- 如果调用v1.1的高级搜索端点(比如30天归档、全归档搜索):需要用OAuth1.0a认证(也就是consumer key/secret + access token/secret),这和你可能熟悉的免费版v1.1认证一致。
- 如果调用v2的全归档搜索端点:可以直接用Bearer Token,更简洁,适合不需要用户上下文的搜索场景。
3. 代码示例
示例1:用Tweepy v1.1调用30天/全归档高级搜索
这个方法适用于Premium的30天归档或全归档搜索,需要你在Twitter开发者平台创建对应的环境标签(比如你创建的30天环境叫my-30day-env):
import tweepy # 替换为你的OAuth1凭据 consumer_key = "你的Consumer Key" consumer_secret = "你的Consumer Secret" access_token = "你的Access Token" access_token_secret = "你的Access Token Secret" # 初始化认证和API实例 auth = tweepy.OAuth1UserHandler(consumer_key, consumer_secret, access_token, access_token_secret) api = tweepy.API(auth) # 调用30天归档搜索,替换YOUR_ENV_LABEL为你的环境标签 # query用Twitter高级搜索语法,比如"from:Twitter since:2023-01-01 has:media" results = api.search_30_day( label="YOUR_ENV_LABEL", query="你的搜索关键词/语法", maxResults=100 # 每次请求最多返回100条结果 ) # 遍历处理结果 for tweet in results: print(f"发布时间: {tweet.created_at} | 内容: {tweet.text}") # 如果是全归档搜索,替换为search_full_archive方法: # results = api.search_full_archive(label="YOUR_FULLARCHIVE_ENV", query="你的搜索语法")
示例2:用Tweepy v2调用全归档高级搜索
如果你更倾向于用Twitter API v2(推荐,因为v2是未来的主流),可以用Tweepy的Client类,用Bearer Token认证:
import tweepy # 替换为你的Bearer Token bearer_token = "你的Bearer Token" # 初始化Client client = tweepy.Client(bearer_token=bearer_token) # 调用全归档搜索,需要你的Premium套餐包含全归档权限 response = client.search_all_tweets( query="你的高级搜索语法", max_results=100, # 可以指定需要返回的字段,比如创建时间、公开指标等 tweet_fields=["created_at", "public_metrics", "author_id"] ) # 处理返回结果 if response.data: for tweet in response.data: print(f"发布时间: {tweet.created_at} | 作者ID: {tweet.author_id} | 内容: {tweet.text}") # 处理分页(如果结果超过100条) if response.meta.get('next_token'): next_token = response.meta['next_token'] # 继续调用client.search_all_tweets,加上pagination_token=next_token
4. 关键注意事项
- 确保你的Twitter开发者账号已经订阅了Premium套餐,并且在平台上创建了对应的搜索环境(30天或全归档),环境标签要和代码里的
label参数一致。 - 高级搜索的查询语法支持更多复杂操作符,比如时间范围
since:YYYY-MM-DD until:YYYY-MM-DD、用户筛选from:username、媒体筛选has:media等,具体可以参考Twitter官方的高级搜索语法文档。 - 如果遇到权限报错,检查你的凭据是否有访问对应Premium端点的权限,或者是否已经正确激活了Premium环境。
内容的提问来源于stack exchange,提问作者Lodore66
相关产品推荐
相关产品推荐

