我正在使用Twitter-py编写python来抓取Twitter空间。我已经将爬虫设置为在每次请求api.twitter.com之间休眠一会儿(2秒)。但是,经过一段时间的运行(大约1),当Twitter的速率限制尚未超过时,我收到了这个错误。
[Errno 10054] An existing connection was forcibly closed by the remote host.
此问题的可能原因是什么以及如何解决?
我搜索过并发现由于许多请求,Twitter服务器本身可能会强制关闭连接。
非常感谢你。
答案 0 :(得分:10)
这可能是由于连接的双方不同意在保持连接期间连接是否超时。 (您的代码尝试重新使用连接,就像服务器关闭它一样,因为它已经空闲了太长时间。)您基本上应该只是通过新连接重试该操作。 (我很惊讶您的图书馆不会自动执行此操作。)
答案 1 :(得分:5)
有很多原因,例如
要详细检查问题,可以使用Wireshark。
或者您可以重新请求或重新连接。
答案 2 :(得分:4)
我知道这是一个非常老的问题,但可能是您需要设置请求标头。这为我解决了。
例如'user-agent','accept'等。以下是user-agent的示例:
url = 'your-url-here'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36'}
r = requests.get(url, headers=headers)
答案 3 :(得分:0)
对我来说,在尝试连接到SAP Hana数据库时出现了这个问题。当我收到此错误时,
OperationalError: Lost connection to HANA server (ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))
我试图运行连接代码(下面提到),它再次创建了这个错误并且有效。
import pyhdb connection = pyhdb.connect(host="example.com",port=30015,user="user",password="secret") cursor = connection.cursor() cursor.execute("SELECT 'Hello Python World' FROM DUMMY") cursor.fetchone() connection.close()
这是因为服务器拒绝连接。它可能需要您等待一段时间再试一次。尝试通过注销然后再次登录来关闭Hana Studio。继续运行代码多次。