按国家而不是坐标进行 Tweepy 搜索

Tweepy Search by a Country and not with coordinates

是否可以按国家代码过滤 Tweepy 搜索?我知道可以通过提供国家坐标和半径来进行搜索。然而,大多数国家并没有很好地用圆圈来定义。看来应该有办法,因为你可以在搜索结束后访问推文国家代码。

我在 tweepy 上工作了一段时间,以追踪来自所有国家/地区的推文。参考这个:Streaming Parameters。 如果您想跟踪来自单个县的推文,您可以执行以下操作:

  • 从国家周围坐标(多边形坐标)的近似边界框跟踪所有推文。
  • 如果你想进一步过滤特定国家的推文,因为上面的方法会给你一些来自邻国的嘈杂推文,你可以检查每条推文的地理位置参数为 TRUE,并检查你正在寻找的国家代码,但过滤器将你的推文降低到 1%。因为约。 1% 的推文带有地理标记(人们的 GPS 信息推文)。
  • 所以,最后你可以选择下一个参数来过滤是使用 "users" "location" 键,这是手动输入的,可以使用像 geopy 这样的地理编码器 API 来解析该字符串值以找到位置并提取国家的名字。

我想这会帮助您将推文缩小到您的目标国家/地区。下面是从字符串值中提取国家代码的 geopy 代码(如 "New york"、"brisbane" 等)。

from geopy.geocoders import Yandex
import json
geolocator = Yandex(lang='en_US')

location = geolocator.geocode("Paris", timeout=10)

if location != None:
    print json.dumps(location.raw, indent=4)
    print location.address
    print location.latitude, " -> ", location.longitude
else:
    print location

参考Geopy Documentation. And for further assistance My Project Presentation

这可以是从特定国家获取的方法。

api = tweepy.API(auth)
places = api.geo_search(query="USA",granularity="country")
place_id = places[0].id
tweets = api.search(q="place:%s" % place_id)