如何在 Tweepy 中为 API.search 的地理编码参数指定多个坐标
Posted
技术标签:
【中文标题】如何在 Tweepy 中为 API.search 的地理编码参数指定多个坐标【英文标题】:How to specify more than one coordinates for geocode parameter of API.search in Tweepy 【发布时间】:2021-06-29 13:08:31 【问题描述】:我想根据多个坐标搜索推文。所以,我尝试了这个,但它没有返回任何结果:
total = 0
for status in tweepy.Cursor(api.search, q='cricket', lang="en",
geocode="24.8607,67.0011,25mi OR 40.7128,74.0060,20mi"
).items(10):
total+=1
print(total)
【问题讨论】:
【参考方案1】:@Tayyap Mazhar 分享该帖子已经有一段时间了,但以防万一,下面的代码将按预期工作。请记住,声明 geoc 变量时不要使用逗号!
import tweepy
import pandas as pd
CONSUMER_KEY = "?"
CONSUMER_SECRET = "?"
OAUTH_TOKEN = "?"
OAUTH_TOKEN_SECRET = "?"
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
auth.secure = True
api = tweepy.API(auth, wait_on_rate_limit=True,
wait_on_rate_limit_notify=True)
if (not api):
print ("Can’t Authenticate")
sys.exit(-1)
tweet_lst=[]
geoc=[('41.0,28.9499962,1km'),('41.1062629083,29.0264182277,1km'),('41.072833042,29.022833242,1km'),('41.05,28.91,1km')]
for geocode in geoc:
for tweet in tweepy.Cursor(api.search,geocode=geocode).items(1000):
tweetDate = tweet.created_at.date()
if(tweet.coordinates !=None):
tweet_lst.append([tweetDate,tweet.id,tweet.
coordinates['coordinates'][0],
tweet.coordinates['coordinates'][1],
tweet.user.screen_name,
tweet.user.name, tweet.text,
tweet.user._json['geo_enabled']])
tweet_df = pd.DataFrame(tweet_lst, columns=['tweet_dt', 'id', 'long','lat','username', 'name', 'tweet','geo'])```
【讨论】:
以上是关于如何在 Tweepy 中为 API.search 的地理编码参数指定多个坐标的主要内容,如果未能解决你的问题,请参考以下文章