我正试图了解为什么会出现此错误。此代码来自我正在上的在线课程。我将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.'}]}
答案 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 。