2017-07-24 87 views
1

我在请求网站时遇到一些使用代理地址的请求时遇到一些困难。没有错误返回,但通过让脚本返回http://ipecho.net/plain,我可以看到自己的IP,而不是代理的IP。Python请求库不使用代理

import random 
import requests 
import time 

def proxy():   
    proxy = (random.choice(proxies)).strip() 
    print("selected proxy: {0}".format(proxy)) 
    url = 'http://ipecho.net/plain' 
    data = requests.get(url, proxies={"https": proxy}) 
    print(data) 
    print("data returned: {0}".format(data.text)) 

proxies = [] 
with open("proxies.txt", "r") as fi: 
    for line in fi: 
     proxies.append(line) 

while True: 
    proxy() 
    time.sleep(5) 

的proxies.txt文件的结构如下:

https://95.215.111.184:3128 
https://79.137.80.210:3128 

任何人都可以解释这种现象?

+0

你会得到什么输出? –

回答

6

您传递的网址是http,您只能提供https代理密钥。您需要在proxies字典中为httphttps创建一个密钥。这些可以指向相同的价值。

proxies = {'http': 'http://proxy.example.com', 'https': 'http://proxy.example.com'} 
data = requests.get(url, proxies=proxies)