python: [Errno 10054] An existing connection was forcibly closed by the remote host
Solution 1:
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.)
Solution 2:
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.
Solution 3:
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)