你如何更改requests.Session()对象的代理?

时间:2017-11-29 20:47:46

标签: python python-2.7 proxy python-requests

一般背景:

我有一个代理列表,我有一个PDF网址列表。我正在下载这些PDF文件。

我希望每次下载都能切换代理。

我在几个答案中看到了以下内容,但是所有代理都是一次使用的吗?或者从代理词典中随机出现?如何选择使用哪个代理?

proxies = {
    'https': 'http://username:password@ip:port', 
    'https': 'http://usernamepassword@ip:port',
    'https': 'http://usernamepassword@ip:port',
    'https': 'http://usernamepassword@ip:port',
    'https': 'http://usernamepassword@ip:port',
    'https': 'http://usernamepassword@ip:port'
}

以下是我当前代码的示例示例

我的代码:

s = requests.Session()
data = {"Username":"usr", "Password":"psw"}
url = "https://someSite.com"
#Logging into the site
s.post(url, data=data) #add proxies=proxies here?

for download_url in PDFLinks:
    temp = s.get(download_url).content

我有一个可用的代理服务器列表

https_proxy_list = "https://IP:port", "https://IP:port", "https://IP:port"

如何更改request.Session()对象的代理? POST和GET

通过更改代理,我不必重新登录该网站,对吧?

1 个答案:

答案 0 :(得分:0)

只需拥有一份代理列表,然后循环使用它们

s = requests.Session()

proxyList = ['Just imagine there are a few proxies here']

for item in proxyList:
    r2 = s.get(login_url, proxies = {'https' : item}, verify=False)


    print r2.status_code
    if r2.status_code == 200:
        print "It worked"
        usable_IP.append(item)


    print usable_IP
print usable_IP

这是我目前正在使用的代码,它解决了我遇到的问题。 2017年12月13日