Twitter API:通过查询和WOEID地点获取热门推文

时间:2016-12-26 12:09:54

标签: python twitter geolocation tweepy

最好通过Python中的Tweepy,我想从Twitter API获取给定搜索查询和WOEID位置标识符(雅虎的Where Where Earth IDentifier)的顶级推文列表。

在我的示例中,我通过Tweepy的id包装器获取了WOEID API.trends_place(id)的趋势查询,以获取Twitter REST API的GET趋势/位置;然后我想在这个地方打印每个趋势查询的顶部推文(相同的WOEID)。

目前,我获取趋势查询的推文,但

  1. 不在指定地点内;
  2. 不一定是“顶级”推文(例如,与“最近”相反)。
  3. 如何将这两个限制添加到我的搜索中?

    MWE:

    import tweepy
    from tweepy import OAuthHandler
    
    consumer_key = 'YOUR-CONSUMER-KEY'
    consumer_secret = 'YOUR-CONSUMER-SECRET'
    access_token = 'YOUR-ACCESS-TOKEN'
    access_secret = 'YOUR-ACCESS-SECRET'
    
    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_secret)
    
    api = tweepy.API(auth)
    
    locationid = 23424775  # WOEID for Canada
    
    trendqueries = [trend['query'] for trend in api.trends_place(locationid)[0]['trends']]
    
    for trendquery in trendqueries:
        print(api.search(q=trendquery))
    

    我尝试了什么:

    我可以使用Tweepy的API.search(q, geocode)按经度/纬度搜索,但我没有看到通过WOEID搜索的明显方法。

1 个答案:

答案 0 :(得分:0)

部分答案

  

API.search(q [,lang] [,locale] [,rpp] [,page] [,since_id] [,geocode] [,show_user])   返回与指定查询匹配的推文。

     

参数:

     

geocode - 返回位于给定纬度/经度的给定半径内的用户的推文。该位置优先采用地理标记API,但将回归到他们的Twitter个人资料。参数值由“latitide,longitude,radius”指定,其中半径单位必须指定为“mi”(英里)或“km”(公里)。请注意,您不能通过API使用near运算符来对任意位置进行地理编码;但是,您可以使用此地理编码参数直接搜索近地理编码。   show_user - 如果为true,则将“:”添加到推文的开头。这对于不显示Atom作者字段的读者非常有用。默认值为false。