python: [Errno 10054] An existing connection was forcibly closed by the remote host

后端 未结 4 923
失恋的感觉
失恋的感觉 2020-11-29 02:53

I am writing python to crawl Twitter space using Twitter-py. I have set the crawler to sleep for a while (2 seconds) between each request to api.twitter.com. However, after

相关标签:
4条回答
  • 2020-11-29 03:20

    there are many causes such as

    • The network link between server and client may be temporarily going down.
    • running out of system resources.
    • sending malformed data.

    To examine the problem in detail, you can use Wireshark.

    or you can just re-request or re-connect again.

    0 讨论(0)
  • 2020-11-29 03:30

    I know this is a very old question but it may be that you need to set the request headers. This solved it for me.

    For example 'user-agent', 'accept' etc. here is an example with 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)
    
    0 讨论(0)
  • 2020-11-29 03:30

    For me this problem arised while trying to connect to the SAP Hana database. When I got this error,

    OperationalError: Lost connection to HANA server (ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))

    I tried to run the code for connection(mentioned below), which created that error, again and it worked.

    
        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()
    
    

    It was because the server refused to connect. It might require you to wait for a while and try again. Try closing the Hana Studio by logging off and then logging in again. Keep running the code for a number of times.

    0 讨论(0)
  • 2020-11-29 03:39

    This can be caused by the two sides of the connection disagreeing over whether the connection timed out or not during a keepalive. (Your code tries to reused the connection just as the server is closing it because it has been idle for too long.) You should basically just retry the operation over a new connection. (I'm surprised your library doesn't do this automatically.)

    0 讨论(0)
提交回复
热议问题