【发布时间】:2016-03-07 19:30:42
【问题描述】:
我正在尝试使用 tweepy 使用推文位置而不是用户位置来下载推文。目前,我可以下载带有用户位置的推文,但即使geo_enabled 返回 True,我也无法获取推文位置。
例如,假设 user_a 来自纽约,但他的推文来自加利福尼亚。我想要用户位置(纽约)和推文位置(加利福尼亚)。
代码:
import tweepy
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
import pandas as pd
import json
import csv
import sys
reload(sys)
sys.setdefaultencoding('utf8')
ckey = 'key'
csecret = 'secret'
atoken = 'token'
asecret = 'secret'
#csvfile = open('StreamSearch.csv','a')
#csvwriter = csv.writer(csvfile, delimiter = ',')
class StdOutListener(StreamListener):
def __init__(self, api=None):
super(StdOutListener, self).__init__()
self.num_tweets = 0
def on_data(self, data):
self.num_tweets += 1
if self.num_tweets < 5: #Remove the limit of no. of tweets to 5
print data
return True
else:
return False
def on_error(self, status):
print status
l = StdOutListener()
auth = OAuthHandler(ckey, csecret)
auth.set_access_token(atoken, asecret)
stream = Stream(auth, l)
stream.filter(locations = [80.10,12.90,80.33,13.24] ) #user location
输出
userLocation, userTimezone, Coordinates,GeoEnabled, Language, TweetPlace
London,UK Amsterdam FALSE en null
Aachen,Germany Berlin TRUE de null
Kewaunee Wi TRUE en null
Connecticut, Eastern Time (US & Canada) TRUE en null
TRUE en null
Lahore, City of Gardens London TRUE en null
NAU class of 2018. Arizona FALSE en null
FALSE en null
Pacific Time (US & Canada) FALSE en null
上面给出的输出是海量数据的清理版本。即使启用了Geolocation,我也无法获取推文位置,也无法获取co-ordinates。
【问题讨论】:
-
这个非常广泛的问题,让我们知道您尝试了什么。
-
@SIslam 包含代码和输出
-
@SitzBlogz 下面的答案是您想要的吗?如果没有,请告诉我们您还在寻找什么。
-
@imp9 谢谢你的回答。我想在这里讨论的要点是我理解用户可能会限制分享他的位置。我对推文位置更感兴趣。即使启用了 geo_location。理解用户也需要给予明确的许可。但我也看到了相同的转发模式。在这种情况下我有点困惑。
标签: python twitter geolocation tweepy