gpt4 book ai didi

获取我最新推文的 Python 脚本在我的服务器上停止工作

转载 作者:行者123 更新时间:2023-11-30 23:40:07 25 4
gpt4 key购买 nike

考虑以下代码:

import twitter
api = twitter.Api()
most_recent_status = api.GetUserTimeline('nemesisdesign')[0].text

我的服务器 (nemesisdesign.net) 几天前停止工作。

如果我在自己的机器上尝试相同的代码,它工作得很好。

这是堆栈跟踪:

>>> most_recent_status = api.GetUserTimeline('nemesisdesign')[0].text
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "build/bdist.linux-i686/egg/twitter.py", line 1414, in GetUserTimeline
json = self._FetchUrl(url, parameters=parameters)
File "build/bdist.linux-i686/egg/twitter.py", line 2032, in _FetchUrl
url_data = opener.open(url, encoded_post_data).read()
File "/usr/local/lib/python2.6/urllib2.py", line 397, in open
response = meth(req, response)
File "/usr/local/lib/python2.6/urllib2.py", line 510, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/local/lib/python2.6/urllib2.py", line 435, in error
return self._call_chain(*args)
File "/usr/local/lib/python2.6/urllib2.py", line 369, in _call_chain
result = func(*args)
File "/usr/local/lib/python2.6/urllib2.py", line 518, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 404: Not Found

有什么提示吗?我不知道...:-(

最佳答案

前 3 个一般要点:

  1. 正如 Paul 指出的那样,Twitter 弃用了其 API 的许多部分。您应该检查您是否使用当前支持的机制。

  2. 官方 Twitter python 文档非常糟糕。上次我检查时,它们没有反射(reflect)任何当前的库或连接协议(protocol)。将它们用作最后​​的手段。

  3. twitter 推荐的 python 库都已经严重过时了。许多根本不起作用,大多数不适用于当前的 API。

我建议您将库切换到 Twython。它得到积极维护并支持当前的 API。还有一些其他积极维护的 Twitter 库。如果两个月内修补了某些内容 - 寻找另一个库。

查看您的确切代码:

  1. 您的 API 对象未传递任何凭据。 IIRC,这在 1.0 API 中是允许的,但 1.1 API 不允许这样做 - 您现在必须使用 API 凭据进行身份验证:

  2. 您应该尝试检查该对象并找出创建 404 的 URL。我猜测它是 1.0 端点。您可能在本地使用较新版本的“twitter”包(无论是什么,该 namespace 中有多个),但在服务器上使用不同的版本。您应该检查每台计算机上的版本。

  3. 您的代码应该捕获 HTTP 错误。 Twitter 的 API 足够好,可以使用 HTTP 状态代码作为错误消息传递的一部分 ( https://dev.twitter.com/docs/error-codes-responses ),并且还将发送有关 header 的信息。这通常可以准确地告诉您发生了什么。像 Twython 这样的图书馆会为您完成大部分工作。

尽管如此,您提供的代码不可能导致该错误 - 所以我不知道发生了什么。

不传递凭据应生成 400;错误凭证为 401。速率限制为 420、429。阻止可能为 404 或 420。

如果我不得不猜测 - 本地您有一个在 1.1 API 端点之后运行的程序包,但您的服务器有一个在 1.0 之后运行的程序包版本 - 该版本不再存在。

关于获取我最新推文的 Python 脚本在我的服务器上停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12897720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com