Reputation: 97
i have a little problem. I want a proxy connection. In my test scripts it is not working. I tried about 50 proxies from this website [https://free-proxy-list.net][1] but none of them were working.
import requests
if __name__ == '__main__':
url = 'https://httpbin.org/ip'
proxy = {
"https" : "https://47.241.107.35:8080",
"http" : "http://47.241.107.35:8080"
}
r = requests.get(url, proxies=proxy, timeout=2)
print(r.json(), r.status_code)
this is the output:
/usr/local/bin/python3 "/Volumes/Dominik/Pycharm Projects on MacOS/venv/scripts/test_is_proxy_valid.py"
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/urllib3/connectionpool.py", line 696, in urlopen
self._prepare_proxy(conn)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/urllib3/connectionpool.py", line 964, in _prepare_proxy
conn.connect()
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/urllib3/connection.py", line 359, in connect
conn = self._connect_tls_proxy(hostname, conn)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/urllib3/connection.py", line 496, in _connect_tls_proxy
return ssl_wrap_socket(
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/urllib3/util/ssl_.py", line 432, in ssl_wrap_socket
ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/urllib3/util/ssl_.py", line 474, in _ssl_wrap_socket_impl
return ssl_context.wrap_socket(sock)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/ssl.py", line 500, in wrap_socket
return self.sslsocket_class._create(
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/ssl.py", line 1040, in _create
self.do_handshake()
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/ssl.py", line 1309, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1123)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/requests/adapters.py", line 439, in send
resp = conn.urlopen(
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/urllib3/connectionpool.py", line 755, in urlopen
retries = retries.increment(
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/urllib3/util/retry.py", line 573, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='httpbin.org', port=443): Max retries exceeded with url: /ip (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1123)')))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Volumes/Dominik/Pycharm Projects on MacOS/venv/scripts/test_is_proxy_valid.py", line 13, in <module>
r = requests.get(url, proxies=proxy, timeout=2)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/requests/adapters.py", line 514, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='httpbin.org', port=443): Max retries exceeded with url: /ip (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1123)')))
Process finished with exit code 1
I also tried to check if the proxy is working with the pythonping package.
import pythonping
pythonping.ping('47.241.107.35', verbose=True)
Output:
dominik@MBP-von-Dominik scripts % sudo python3 test_pythonping.py
Reply from 47.241.107.35, 9 bytes in 272.06ms
Reply from 47.241.107.35, 9 bytes in 306.51ms
Reply from 47.241.107.35, 9 bytes in 305.31ms
Reply from 47.241.107.35, 9 bytes in 307.49ms
dominik@MBP-von-Dominik scripts %
Can anyone explain me what I'm doing wrong?
Upvotes: 1
Views: 4095
Reputation: 97
I solved the problem. I installed nmap. With nmap i could test if the proxy is still running over the terminal.
nmap -p 8080 52.35.63.184
nmap tells me if it is a http or https server. My problem was, that i put the "https" key-value pair in the proxy dictionary while the server was an "http" server. After removing this pair the script worked and printed out the correct output. Correction of the proxy dictionary:
proxy = {
"http" : "http://52.35.63.184:8080"
}
output(i used a different proxy, which was also not working with the older script version):
InsecureRequestWarning: Unverified HTTPS request is being made to host 'httpbin.org'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
warnings.warn(
{'origin': '188.195.149.36'} 200
Upvotes: 1