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

使用tweepy的search_tweets接口报错Unexpected parameter: since如何解决

报错原因

你遇到的Unexpected parameter: since报错,本质是当前使用的Tweepy v4.x及以上版本中,api.search_tweets()方法已经移除了since、until这两个独立参数,同时还存在两个需要注意的关联问题:

  1. Twitter API v1.1的标准搜索接口仅支持查询最近7天内的推文,你要查询2018-2021年的历史数据,该接口本身不支持
  2. 你的代码末尾存在笔误,all_tweets = [tweets for tweet in tweets]把循环变量写反了,会返回无效结果

解决方案

方案一:仅需要查询最近7天内的推文

可直接调整查询语法,把时间过滤规则写到搜索关键词q参数中即可,调整后代码如下:

import tweepy
from textblob import TextBlob
import pandas as pd
import numpy as np
import re
import matplotlib.pyplot as plt
import datetime
plt.style.use("fivethirtyeight")

# 存储登录信息
log = pd.read_csv("tokens.csv")
consumerKey = log['key'][0]
consumerSecret = log['key'][1]
accessToken = log['key'][2]
accessTokenSecret = log['key'][3]

# 创建认证对象
authenticate = tweepy.OAuthHandler(consumerKey, consumerSecret)
# 配置access token和access secret
authenticate.set_access_token(accessToken, accessTokenSecret)

# 创建API对象
api = tweepy.API(authenticate, wait_on_rate_limit=True)

# 搜索规则:7天内的带#Amazonia的非转推葡语推文
seven_days_ago = (datetime.datetime.now() - datetime.timedelta(days=7)).strftime("%Y-%m-%d")
search_term = f"#Amazonia -filter:retweets since:{seven_days_ago}"
# 移除独立的since、until参数
tweets = tweepy.Cursor(api.search_tweets, q=search_term, lang= "pt", tweet_mode="extended").items(2000)

# 存储推文,修正变量笔误
all_tweets = [tweet for tweet in tweets]

方案二:需要查询2018-2021年的历史推文

你需要先申请Twitter学术研究API权限,对接Tweepy的V2接口search_all_tweets实现全历史推文查询,示例代码如下:

import tweepy
from textblob import TextBlob
import pandas as pd
import numpy as np
import re
import matplotlib.pyplot as plt
plt.style.use("fivethirtyeight")

# 填入你申请到的V2接口Bearer Token
bearer_token = "你的V2接口Bearer Token"
client = tweepy.Client(bearer_token=bearer_token, wait_on_rate_limit=True)

# 配置搜索规则
search_term = "#Amazonia -is:retweet lang:pt"
# 调用全历史搜索接口,时间格式需为带UTC时区的ISO格式
tweets = tweepy.Paginator(client.search_all_tweets, 
                          query=search_term,
                          start_time="2018-01-01T00:00:00Z",
                          end_time="2021-12-01T00:00:00Z",
                          max_results=100).flatten(limit=2000)

all_tweets = [tweet for tweet in tweets]

注意:普通开发者账号仅可使用V2接口的search_recent_tweets,仍只能查询最近7天的推文,只有学术/企业权限账号可使用search_all_tweets查询全历史数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:15:04