我试图向代理发送python请求,但失败了

问题描述 投票:2回答:1

我尝试将python请求发送到代理,但失败。我做错了什么?

这里是代码:

import requests
url = 'https://httpbin.org/ip'

proxies = {
    "http": 'http://103.250.153.242',
    "https": 'http://103.250.153.242'
}

response = requests.get(url,proxies=proxies)
print(response.json())

结果应该返回{'origin':'103.250.153.242'},但我得到了:

Traceback (most recent call last):
  File "C:\Python37\lib\site-packages\urllib3\connection.py", line 160, in _new_conn
    (self._dns_host, self.port), self.timeout, **extra_kw)
  File "C:\Python37\lib\site-packages\urllib3\util\connection.py", line 80, in create_connection
    raise err
  File "C:\Python37\lib\site-packages\urllib3\util\connection.py", line 70, in create_connection
    sock.connect(sa)
TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

我该如何解决?

python python-requests proxies
1个回答
0
投票
import urllib
import requests

r = requests.get('http://google.com', proxies=urllib.request.getproxies())

但是如果您有代理列表:

from urllib3 import ProxyManager, make_headers

default_headers = make_headers(proxy_basic_auth='myusername:mypassword')
http = ProxyManager("https://myproxy.com:8080/", headers=default_headers)

# Now you can use `http` as you would a normal PoolManager
r = http.request('GET', 'https://stackoverflow.com/')

或:

import requests
proxies = {
    'http': 'http://proxy.server:port',
    'https': 'http://proxyserver:port',
}
s = requests.Session()
s.proxies = proxies
r = s.get('https://api.ipify.org?format=json').json()
© www.soinside.com 2019 - 2024. All rights reserved.