我正在处理一个项目,需要将请求与代理一起使用,因此我下载了一个代理列表,我想随机轮换代理,问题是如果我用这样的单个代理定义字典
proxies = {'https': 'https://18.136.89.68:8080'}
接着
response = requests.get(url,proxies=proxies)
它可以工作,但是如果我要使用代理列表,请求可以工作,但不连接到代理即可执行请求。
proxies = []
url = 'https://www.sslproxies.org/'
htmlContent = requests.get(url)
soup = BeautifulSoup(htmlContent.text, 'html.parser')
proxies_table = soup.find(id='proxylisttable')
for row in proxies_table.tbody.find_all('tr'):
proxies.append({
"https":'https://'+
row.find_all('td')[0].string+
':'+
row.find_all('td')[1].string
})
response = requests.get('https://httpbin.org/ip',proxies=proxies[<any index>]) print(response.json())
即使以为它创建了一个字典列表,它也会显示列表代理的任何索引来显示我的真实IP地址,我试图删除字典中的'https://'+
部分,但是同样的结果我也尝试了{{1} },我也尝试过:
response = requests.get('https://httpbin.org/ip',proxies=dict(proxies[<any index>]))
它总是显示我的实际IP地址而不是代理的IP地址。 同样,这只是脚本的一部分,在开始时,我会导入所需的所有模块。