📜  Requests-代理(1)

📅  最后修改于: 2023-12-03 14:47:04.160000             🧑  作者: Mango

Requests代理

什么是Requests库

Requests是一个基于Python的第三方库,它可以让我们轻松地发送HTTP/1.1请求。Requests库不仅让传送HTTP/1.1请求变得更加简单,同时还支持身份认证、Cookie、管理会话、添加headers等功能。

什么是代理

代理是一个服务器,它充当客户端与其他服务器之间的中间人,客户端发起的所有请求都将通过这个代理服务器发送到远程服务器上。使用代理可以隐藏客户端的真实IP地址,从而保护客户端的隐私并防止反向跟踪。

在Requests中使用代理

在Requests库中,可以使用proxies参数指定代理服务器地址和端口号。下面是一个示例:

import requests

proxies = {
    'http': 'http://10.10.10.10:8888',
    'https': 'https://10.10.10.10:8888'
}

response = requests.get('https://www.baidu.com', proxies=proxies)
print(response.text)

上面的代码中,我们创建了一个proxies字典,其中http和https分别代表HTTP和HTTPS协议,后面的值是代理服务器的地址和端口号。然后,我们使用get方法向百度发送请求,并将proxies参数传递给get方法。

使用认证代理

如果代理服务器需要身份认证,我们可以将认证信息包含在代理服务器地址中。下面是一个示例:

import requests

proxies = {
    'http': 'http://user:password@10.10.10.10:8888',
    'https': 'https://user:password@10.10.10.10:8888'
}

response = requests.get('https://www.baidu.com', proxies=proxies)
print(response.text)

上面的代码中,我们在代理服务器地址中包含了用户名和密码。这样,代理服务器就可以验证请求是否来自合法的用户。

代理链

有时候,我们需要将请求发送给一个代理链,即请求需要经过多个代理服务器才能到达目标服务器。在Requests库中,我们可以使用proxies参数的列表形式来实现代理链。下面是一个示例:

import requests

proxies = [
    {
        'http': 'http://10.10.10.10:8888',
        'https': 'https://10.10.10.10:8888'
    },
    {
        'http': 'http://20.20.20.20:8888',
        'https': 'https://20.20.20.20:8888'
    }
]

response = requests.get('https://www.baidu.com', proxies=proxies)
print(response.text)

上面的代码中,我们创建了一个proxies列表,其中包含两个代理服务器地址和端口号。然后,我们使用get方法向百度发送请求,并将proxies参数传递给get方法。

总结

使用代理可以隐藏客户端的真实IP地址,从而保护隐私和防止反向跟踪。在Requests库中,我们可以使用proxies参数来指定代理服务器地址和端口号,也可以使用认证代理和代理链来满足不同的需求。