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

Tweepy技术问题:如何采集同时包含两个搜索词列表中至少各一个词汇的推文

解决Tweepy多词汇搜索的问题(单列表失效 + 双列表AND逻辑)

首先,咱们先解决你单个词汇列表搜索失效的问题,然后再实现你需要的双主题词汇的AND搜索逻辑。

问题1:单个列表多词汇时搜索无结果

你之前的代码是把Excel读取后的数组转成字符串再做一堆替换,这种方式很容易因为格式混乱(比如多余的括号、引号、换行符)导致Twitter搜索API无法正确解析你的query,尤其是词汇数量增多时,格式错误会更明显。

替换方案是直接从Pandas的Series生成干净的OR连接字符串,不用那些容易出错的replace操作:

# 读取爱情词汇Excel并处理
file_loc1 = "search_words/love.xlsx"
love_df = pd.read_excel(file_loc1, index_col=None, na_values=['NA'], usecols="A", skiprows=11)
# 清理空值、转小写、转成列表
love_words = love_df['love'].dropna().str.lower().tolist()
# 生成OR连接的搜索字符串,格式:word1 OR word2 OR word3
love_search_str = " OR ".join(love_words)

# 加上去重推过滤,单个列表的搜索query就完成了
single_list_query = f"{love_search_str} -filter:retweets"

这种方式生成的query完全符合Twitter搜索语法,不会有多余的符号,词汇再多也能正常识别。

问题2:实现双列表的AND搜索逻辑

要实现(爱情词1 OR 爱情词2...) AND (健康词1 OR 健康词2...)的逻辑,只需要把两个列表的OR字符串分别用括号包裹,再用AND连接即可,完整代码示例:

import pandas as pd
import tweepy as tw

# --- 处理爱情词汇列表 ---
file_loc1 = "search_words/love.xlsx"
love_df = pd.read_excel(file_loc1, index_col=None, na_values=['NA'], usecols="A", skiprows=11)
love_words = love_df['love'].dropna().str.lower().tolist()
love_search_str = " OR ".join(love_words)

# --- 处理健康词汇列表 ---
file_loc2 = "search_words/health.xlsx"
health_df = pd.read_excel(file_loc2, index_col=None, na_values=['NA'], usecols="A", skiprows=11)
health_words = health_df['health'].dropna().str.lower().tolist()
health_search_str = " OR ".join(health_words)

# --- 构建最终搜索query ---
# 用括号分组两个主题的OR逻辑,再用AND连接,加上去重推过滤
final_query = f"({love_search_str}) AND ({health_search_str}) -filter:retweets"
date_since = "2020-01-01"

# --- 采集推文 ---
tweets = tw.Cursor(api.search, q=final_query, lang="en", since=date_since).items(5000)
tweet_text = [tweet.text for tweet in tweets]

额外注意事项

  • Query长度限制:Twitter的搜索query最大长度是512字符,如果你的词汇列表太长,导致最终query超过这个限制,API会返回错误。这时候需要精简词汇,或者分批次拆分词汇列表进行搜索。
  • 空值处理:一定要用dropna()过滤Excel里的空行,避免空字符串被加入搜索词,破坏语法。
  • 列名匹配:确保Excel里的列名和代码中引用的一致(比如love_df['love']对应Excel里的列名是love),如果列名不对要调整代码里的字段名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 09:04:07