【问题标题】:Twitter API: Get top tweets by query and WOEID placeTwitter API:通过查询和 WOEID 位置获取热门推文
【发布时间】:2017-05-10 21:46:44
【问题描述】:

最好通过 Python 中的 Tweepy,我想从 Twitter API 获取给定搜索查询和 WOEID 地点标识符(Yahoo's Where On Earth IDentifier)的热门推文列表。

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

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

  1. 不在给定的地方;
  2. 不一定是“热门”推文(与例如“最近”相对)。

如何将这两个限制添加到我的搜索中?


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 进行搜索的明显方法。

【问题讨论】:

    标签: python twitter geolocation tweepy


    【解决方案1】:

    部分回答

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

    参数:

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

    【讨论】:

    • 我想通过 WOEID 地点搜索,这样我就可以使用API.trends_place(id) 输出,而geocode 参数是基于纬度/经度的。我是否缺少使用geocode 参数来实现此目标的(明显)方式?
    猜你喜欢
    • 2021-09-05
    • 2017-10-07
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 2016-01-18
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    相关资源
    最近更新 更多