TwitterHTTPError检索Twitter趋势时

时间:2019-03-19 23:52:05

标签: python twitter

我正试图了解为什么会出现此错误。此代码来自我正在上的在线课程。我将LOCAL_WOE_ID更改为本地区域的WOE ID,这就是我收到错误消息的时间。如果我在主要城市使用ID,就可以了。

import pickle
import os
if not os.path.exists('secret_twitter_credentials.pkl'):
    Twitter={}
    Twitter['Consumer Key'] = '...'
    Twitter['Consumer Secret'] = '...'
    Twitter['Access Token'] = '...'
    Twitter['Access Token Secret'] = '...'
    with open('secret_twitter_credentials.pkl','wb') as f:
        pickle.dump(Twitter, f)
else:
    Twitter=pickle.load(open('secret_twitter_credentials.pkl','rb'))

WORLD_WOE_ID = 1
US_WOE_ID = 23424977

LOCAL_WOE_ID=2344925

# Prefix ID with the underscore for query string parameterization.
# Without the underscore, the twitter package appends the ID value
# to the URL itself as a special case keyword argument.

world_trends = twitter_api.trends.place(_id=WORLD_WOE_ID)
us_trends = twitter_api.trends.place(_id=US_WOE_ID)
local_trends = twitter_api.trends.place(_id=LOCAL_WOE_ID)

我收到此错误。

TwitterHTTPError: Twitter sent status 404 for URL: 1.1/trends/place.json using parameters: (id=2344925&oauth_consumer_key=...&oauth_nonce=...&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1553037060&oauth_token=...&oauth_version=1.0&oauth_signature=...)
details: {'errors': [{'code': 34, 'message': 'Sorry, that page does not exist.'}]}

2 个答案:

答案 0 :(得分:1)

问题似乎是由于2344925的LOCAL_WOE_ID对Twitter API无效。

Twitter提供了另一个API twitter.trends.available(),该API列出了所有受支持的可用WOEID。 API文档位于:https://developer.twitter.com/en/docs/trends/locations-with-trending-topics/api-reference/get-trends-available.html

2344925不会出现在此列表中(尽管在其他https://www.flickr.com/places/info/2344925等其他WOEID查找中可以找到),这可能是由于Yahoo!当前未完全支持其“地球上的地方”数据(https://en.wikipedia.org/wiki/WOEID)。

答案 1 :(得分:0)

我在同一堂课上遇到了同样的错误。

我找到了解决方法。由于Yahoo不再提供WOEID,您只需要在Twitter App中使用它,就可以通过这种方式找到离您最近的城市。运行

twitter_api.trends.available() 

在jupyter笔记本中(当然是在安装和导入twitter之后)。这将为您提供城市列表,您可以为自己的城市 ctrl + f