Python使用Tweepy搜索推文时能否在查询参数中设置多个关键词?
解答
核心结论
可以在查询参数中设置多个关键词,你之前的写法存在错误,和Twitter API本身的功能无关。
错误原因
你在q参数中使用了Python原生的and运算符,按照Python的语法规则,两个非空字符串做and运算时,会返回最后一个为真的字符串,因此'Java' and 'Python'的实际运算结果就是'Python',这就是你仅能搜索到包含Python推文的原因。
正确实现
Twitter API的q参数遵循平台统一的搜索运算符规则,要搜索同时包含多个关键词的推文,直接把所有关键词用空格分隔,放在同一个字符串里传入即可。
修改后的代码示例:
import tweepy CK = # 填入你的Consumer Key CS = # 填入你的Consumer Secret AT = # 填入你的Access Token AS = # 填入你的Access Token Secret auth = tweepy.OAuthHandler(CK, CS) auth.set_access_token(AT, AS) api = tweepy.API(auth) # 同时包含Java、Python两个关键词的查询 for status in api.search(q='Java Python', count=100): print(status.user.id) print(status.user.screen_name) print(status.user.name) print(status.text) print(status.created_at)
常用搜索规则扩展
- 精确匹配完整短语:用双引号包裹内容,例如
q='"Java 高级开发"' - 匹配多个关键词中的任意一个:用大写OR连接,例如
q='Java OR Python' - 排除包含指定关键词的结果:关键词前加负号,例如
q='Java Python -广告'
内容的提问来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

