如何使用snscrape按位置搜索推文?查询语句需添加哪些内容?
使用snscrape按位置搜索推文的方法
问题解答
1. 如何使用snscrape工具按位置搜索推文?
在snscrape中,只需在Twitter搜索查询字符串中加入位置筛选条件,再传入TwitterSearchScraper执行查询,即可实现按位置抓取推文。
2. 需在搜索查询语句中添加哪些内容?
有两种常用的位置筛选格式可直接添加到查询语句中:
- 地点名称+范围:用
near:"地点名称" within:范围格式,范围支持mi(英里)或km(公里)单位,例如near:"Rio de Janeiro" within:5km - 地理坐标+范围:用
geocode:纬度,经度,半径格式,同样支持mi或km单位,例如geocode:-22.9068,-43.1729,10km(对应里约热内卢的坐标)
修改后的代码示例
import snscrape.modules.twitter as sntwitter keyword = '(COVID OR Corona Vírus)' maxTweets = 30 tweets = [] # 方式1:使用地点名称+范围 search_query = keyword + ' since:2020-01-01 lang:pt near:"São Paulo" within:10km' # 方式2:使用地理坐标+范围(可替换上方的search_query) # search_query = keyword + ' since:2020-01-01 lang:pt geocode:-23.5505,-46.6333,10km' for i,tweet in enumerate(sntwitter.TwitterSearchScraper(search_query).get_items()) : if i >= maxTweets : # 修正原代码逻辑:原i>maxTweets会多抓取一条,改为i>=更准确 break tweets.append([tweet.sourceLabel, tweet.location]) # 可额外添加tweet.location查看推文关联位置 print(tweets)
注:原代码中
if i > maxTweets的逻辑存在小问题,当i等于maxTweets时会多抓一条,建议调整为i >= maxTweets。
内容的提问来源于stack exchange,提问作者fygeng go
相关产品推荐
相关产品推荐

