tweety twitter APi 没有返回任何内容 (python)
tweety twitter APi returning nothing (python)
我正在使用 tweepy 和地理编码包将 ZipCodes 转换为纬度和经度,然后使用 tweepy 从 Twitter API 中提取,但是我没有得到任何东西到 return。我已经逐行执行了我的代码,但每次 return 什么都没做时都卡在 api.search 上。
query = 'stack'
radius = 1000
DataSet = pd.DataFrame
loopCount = 0
appended_data = []
appendData = []
def toDataFrame(tweets):
DataSet = pd.DataFrame()
DataSet['tweetID'] = [tweet.id for tweet in tweets]
DataSet['tweetText'] = [tweet.text for tweet in tweets]
DataSet['tweetRetweetCt'] = [tweet.retweet_count for tweet in tweets]
DataSet['tweetFavoriteCt'] = [tweet.favorite_count for tweet in tweets]
DataSet['tweetSource'] = [tweet.source for tweet in tweets]
DataSet['tweetCreated'] = [tweet.created_at for tweet in tweets]
DataSet['userID'] = [tweet.user.id for tweet in tweets]
DataSet['userScreen'] = [tweet.user.screen_name for tweet in tweets]
DataSet['userName'] = [tweet.user.name for tweet in tweets]
DataSet['userCreateDt'] = [tweet.user.created_at for tweet in tweets]
DataSet['userDesc'] = [tweet.user.description for tweet in tweets]
DataSet['userFollowerCt'] = [tweet.user.followers_count for tweet in tweets]
DataSet['userFriendsCt'] = [tweet.user.friends_count for tweet in tweets]
DataSet['userLocation'] = [tweet.user.location for tweet in tweets]
DataSet['userTimezone'] = [tweet.user.time_zone for twee
def location(zip):
geolocator = Nominatim()
location = geolocator.geocode(zip)
cordinates = ((location.latitude, location.longitude))
cordinates = str(cordinates)
cordinates = cordinates.replace("(","")
cordinates = cordinates.replace(")","")
return cordinates
def lookUp(results):
for result in results:
DataSet = pd.DataFrame(results)
print DataSet
return DataSet
##hidden for SO
auth = tp.OAuthHandler('','')
auth.set_access_token('', '')
api = tp.API(auth)
for zip in zips:
#for row, zip in zips.iterrows():
if (loopCount == 15):
t.sleep(960)
loopCount = 0
loopCount = loopCount + 1
cordinates = location(zip)
inputCode = cordinates + ', ' + str(radius)
results = api.search(geocode=inputCode, count=100, q=query)
DataSet = lookUp(results)
appendData.append(DataSet)
appended_data = pd.concat(appendedData, axis=1)
注意不要在geocode
中传递空格,还要加上单位。例如,使用您的函数 location
,
In [5]:
zip = 28039
cordinates = location(zip)
In [23]:
radius = '1km'
inputCode = cordinates + ', ' + str(radius)
inputCode = inputCode.replace(' ', '')
inputCode
Out[23]:
'40.4604043354592,-3.70401484102134,1km'
In [24]:
query = 'a'
results = api.search(geocode=inputCode, count=100, q=query)
In [25]:
len(results)
Out[25]:
100
引用twitter docs:
The parameter value is specified by “latitude,longitude,radius”, where
radius units must be specified as either “mi” (miles) or “km”
(kilometers).
希望对您有所帮助。
我正在使用 tweepy 和地理编码包将 ZipCodes 转换为纬度和经度,然后使用 tweepy 从 Twitter API 中提取,但是我没有得到任何东西到 return。我已经逐行执行了我的代码,但每次 return 什么都没做时都卡在 api.search 上。
query = 'stack'
radius = 1000
DataSet = pd.DataFrame
loopCount = 0
appended_data = []
appendData = []
def toDataFrame(tweets):
DataSet = pd.DataFrame()
DataSet['tweetID'] = [tweet.id for tweet in tweets]
DataSet['tweetText'] = [tweet.text for tweet in tweets]
DataSet['tweetRetweetCt'] = [tweet.retweet_count for tweet in tweets]
DataSet['tweetFavoriteCt'] = [tweet.favorite_count for tweet in tweets]
DataSet['tweetSource'] = [tweet.source for tweet in tweets]
DataSet['tweetCreated'] = [tweet.created_at for tweet in tweets]
DataSet['userID'] = [tweet.user.id for tweet in tweets]
DataSet['userScreen'] = [tweet.user.screen_name for tweet in tweets]
DataSet['userName'] = [tweet.user.name for tweet in tweets]
DataSet['userCreateDt'] = [tweet.user.created_at for tweet in tweets]
DataSet['userDesc'] = [tweet.user.description for tweet in tweets]
DataSet['userFollowerCt'] = [tweet.user.followers_count for tweet in tweets]
DataSet['userFriendsCt'] = [tweet.user.friends_count for tweet in tweets]
DataSet['userLocation'] = [tweet.user.location for tweet in tweets]
DataSet['userTimezone'] = [tweet.user.time_zone for twee
def location(zip):
geolocator = Nominatim()
location = geolocator.geocode(zip)
cordinates = ((location.latitude, location.longitude))
cordinates = str(cordinates)
cordinates = cordinates.replace("(","")
cordinates = cordinates.replace(")","")
return cordinates
def lookUp(results):
for result in results:
DataSet = pd.DataFrame(results)
print DataSet
return DataSet
##hidden for SO
auth = tp.OAuthHandler('','')
auth.set_access_token('', '')
api = tp.API(auth)
for zip in zips:
#for row, zip in zips.iterrows():
if (loopCount == 15):
t.sleep(960)
loopCount = 0
loopCount = loopCount + 1
cordinates = location(zip)
inputCode = cordinates + ', ' + str(radius)
results = api.search(geocode=inputCode, count=100, q=query)
DataSet = lookUp(results)
appendData.append(DataSet)
appended_data = pd.concat(appendedData, axis=1)
注意不要在geocode
中传递空格,还要加上单位。例如,使用您的函数 location
,
In [5]:
zip = 28039
cordinates = location(zip)
In [23]:
radius = '1km'
inputCode = cordinates + ', ' + str(radius)
inputCode = inputCode.replace(' ', '')
inputCode
Out[23]:
'40.4604043354592,-3.70401484102134,1km'
In [24]:
query = 'a'
results = api.search(geocode=inputCode, count=100, q=query)
In [25]:
len(results)
Out[25]:
100
引用twitter docs:
The parameter value is specified by “latitude,longitude,radius”, where radius units must be specified as either “mi” (miles) or “km” (kilometers).
希望对您有所帮助。