如何获取指定区域的推文?search_tweets传入geocode无结果该如何解决
故障原因与修复方案
核心问题:geocode参数格式不符合Twitter API要求
Twitter API要求geocode参数的格式为**纬度,经度,半径**,不能包含latitude =、longitude =这类描述性字段,半径单位支持km(公里)或mi(英里)。你原代码里的geocode参数写法完全不符合规范,是导致查不到数据的直接原因。
其他可排查的潜在问题
- 检查代码中
q=any部分:如果any不是你提前定义好的搜索关键词变量,直接写any会传入Python内置的any函数作为搜索参数,不符合API要求;如果需要无关键词搜索全量推文,改为q="*"即可。 search_tweets属于Twitter API v1.1的端点,仅支持查询最近7天内发布的推文,超出时间范围的内容无法检索到。- 只有用户发布推文时主动开启了位置标记,才会被地理检索命中,你可以适当调大半径范围提升结果数量。
- 原代码中
if new_tweets != ''的判断逻辑有误,API返回的结果是列表而非字符串,直接判断列表是否非空即可。
修正后的代码示例
# 示例:搜索坐标36.7762,3.05997周边15公里内的推文,无关键词限制 new_tweets = api.search_tweets(q="*", geocode="36.7762,3.05997,15km", count=20) if new_tweets: for tw in new_tweets: print(tw.text) else: print('no tweets found')
内容的提问来源于stack exchange,提问作者Rima Zourane
相关产品推荐
相关产品推荐

