Tweepy按国家搜索而不是坐标

时间:2015-07-17 08:29:24

标签: tweepy

是否可以按国家/地区代码过滤Tweepy Search?我知道通过给出国家坐标和半径来搜索是可能的。但是,大多数国家都没有很好地界定。似乎应该有一种方法,因为您可以在搜索结束后访问推文国家/地区代码。

2 个答案:

答案 0 :(得分:2)

我在tweepy上工作了一段时间来追踪来自所有国家/地区的推文。请参阅:Streaming Parameters。 如果你想跟踪一个县的推文,你可以做的如下:

  • 跟踪国家/地区坐标(多边形坐标)的近似边界框中的所有推文。
  • 如果你想进一步过滤特定国家的推文,因为上面的方法会给你一些来自邻国的嘈杂的推文,你可以查看每个推文都有地理位置参数为TRUE并检查你正在寻找的国家代码但是过滤掉你的推文为1%。因为约。 1%的推文被地理标记(人们GPS信息推文)。
  • 因此,最后您可以选择要过滤的下一个参数是使用“用户”“位置”键,即手动输入并可以使用地理编码器API(如geopy)来解析该字符串值以查找位置并提取国家/地区名称。

我想这可以帮助您缩小到目标国家/地区的推文。下面是从字符串值中提取国家/地区代码的地理代码(如“纽约”,“布里斯班”等)。

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。并获得进一步的帮助My Project Presentation

答案 1 :(得分:0)

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

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)