Twitter API:如何仅搜索带有地理标记的推文

23

如何使用 Twitter Search API(或其他方式)获取具有 "geo" 参数的推文列表?

--编辑--

例如:我想通过 #apple 标签获取带有地理标记的推文列表,不使用位置过滤器,在全球范围内。


我想要完全一样的。你能让它正常工作吗? - Beterraba
Twitter搜索API和地理参数可能不会按照您的预期工作,它仍然可以返回未提供坐标(无纬度/经度)的结果。 - Christophe Roussy
5个回答

12

看起来最新的API支持这个功能;只需为查询使用足够大的地理区域即可:

-180,-90,180,90

请查看API链接了解更多有关过滤和位置的相关信息。


9
流媒体API允许您按地点过滤,搜索API允许按地理编码搜索。您可以在我们的开发者资源网站上找到有关这些服务的更多信息。
流媒体API:http://dev.twitter.com/pages/streaming_api 示例:创建一个名为“locations”的文件,其中包含短语“locations=-122.75,36.8,-121.75,37.8,-74,40,-73,41”,然后执行:
curl -d @locations http://stream.twitter.com/1/statuses/filter.json -uAnyTwitterUser:Password.
您将收到来自旧金山和纽约市地区的所有地理标记推文。
搜索API:http://dev.twitter.com/doc/get/search 示例:http://search.twitter.com/search.json?geocode=37.781157,-122.398720,1mi

5
我读了这个,问题是我不想限制地点,只想收到带地理标记的推文。 - bnetangel
目前的 Twitter API 没有这种功能。你所要求的是让 Twitter 为你提供一种过滤后的信息流,但为什么 Twitter 要浪费带宽和服务器时间来进行预过滤呢?你必须自己下载所有信息流,进行过滤,或者在某个半径范围内搜索信息流等 - 这归根结底取决于你自己进行过滤。 - Dennis G
5
你所要求的是让 Twitter 提供一种过滤后的信息流。如果我像你的示例那样使用参数 geocode=37.781157,-122.398720,1mi 进行搜索,那么这也算是一个“过滤后的信息流”,因为它仅请求带有地理标签的推文。尽管目前无法实现这一点,感谢你提出来了,但是提供这个功能不会比现有的地理标签过滤器浪费更多的服务器时间,而且它消耗的带宽会更少,因为我们不必在只想获取子集时拉取所有的推文。 - JMTyler
1
我遇到了同样的问题,在大量搜索后,我总结了这种方法在这里。希望这能帮助其他人。 - Yanzhe Chen
@YanzheChen,你的端出现了问题。如果你有相关信息,我很感兴趣了解解决方法。谢谢。 - CatsLoveJazz
需要更新最近的Twitter API,我想。 - John Carlson

5

根据 Twitter API 文档,你的搜索查询应该符合以下格式:

 http://search.twitter.com/search.json?geocode=37.781157,-122.398720,1mi

这里的 37.781157 是纬度,-122.398720 是经度,1mi 表示搜索半径。


那么,指定10000000英里是否覆盖整个地球并回答OP的问题?那样行吗? - cherouvim
1
# geocode Returns tweets by users located within a given radius of the given latitude/longitude. The location is preferentially taking from the Geotagging API, but will fall back to their Twitter profile. The parameter value is specified by "latitude,longitude,radius", where radius units must be specified as either "mi" (miles) or "km" (kilometers). Note that you cannot use the near operator via the API to geocode arbitrary locations; however you can use this geocode parameter to search near geocodes directly. - Jasdeep Singh
1
这是一个非常慢的解决方案,但目前似乎没有其他办法。 - bnetangel
你是否正在尝试搜索来自世界各地的地理标记推文? - Jasdeep Singh
1
是的,我尝试搜索来自世界各地的地理标记推文。 - bnetangel
显示剩余2条评论

0

你可以搜索每一条推文,但只保存带有地理标记的。

我知道这听起来有点不合理,但效果还不错。

如果你调用搜索结果,你可以说明:

for result in results:
    if result.geo != None:
        print result.text.encode('utf-8', errors='ignore')  # or do anything you want with the tweets

-2

使用-180,-90,180,90获取任何地理标记的推文。


2
这对 此前的回答 没有任何添加。 - Jeffrey Bosboom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接