简而言之,代理是作为连接网络服务的外层的服务器。它们充当计算机与用户想要从中提取信息的网站之间的中间人。用户的请求不是直接发送到相关网站,而是首先被导向代理,然后代理将其发送到终端服务器。因此,网站保存的是代理服务器的IP地址,而不是用户的IP地址。
那么,为什么要使用代理
例如,如果需要从网站收集信息而不用担心限制或屏蔽。代理通过掩盖真实用户的IP地址来改变他们的真实数字身份。
可以使用来自没有限制的特定国家的代理。这是因为在某些国家,对一些程序和网站的访问是有限制或被屏蔽的。
Requests是使用Python发送HTTP请求的库。它使GET和POST请求变得简单。使用没有代理的Python Requests可以发送HTTP请求,但它不提供匿名性或绕过限制。
要安装requests,只需在终端中输入以下命令:
pip install requests
要验证所需的库是否正确设置,你需要打开Python开发环境并运行命令:
import requests
print(requests.__version__)
如果一切都正确完成,脚本将返回版本号。
一旦我们安装了requests库,我们就可以开始执行HTTP请求。然而,要结合代理,Python中必须进行某些配置。
让我们检查在Python中为请求正确配置代理的步骤。我们将单独考虑带有SOCKS代理配置的Python Requests。
对于使用requests库的用户来说,使用Python设置代理非常简单。它要求将代理服务器地址传递到字典中,然后在进行HTTP请求时使用。
proxies = {
"http": "http://your-proxy-ip:port",
"https": "http://your-proxy-ip:port",
}
response = requests.get("http://example.com", proxies=proxies)
使用Python Requests时,代理认证很容易设置。让我们仔细看看细节。
proxies = {
"http": "http://username:password@your-proxy-ip:port",
"https": "http://username:password@your-proxy-ip:port",
}
response = requests.get("http://example.com", proxies=proxies)
需要填写的两个新字段是:
对于需要更高匿名级别的用户,或者如果您正在使用严格限制的网站,标准的HTTP代理可能无法工作。在这种情况下,SOCKS代理可能更好。
要启用SOCKS代理支持,需要使用下面列出的命令安装额外的库:
pip install requests[socks]
一旦安装完成,Python Requests允许您设置可以使用的SOCKS代理,如下例所示。
import requests
proxies = {
"http": "socks5h://your-proxy-ip:port",
"https": "socks5h://your-proxy-ip:port",
}
response = requests.get("http://example.com", proxies=proxies)
如果代理服务器需要认证,请如下所示包含它们。
proxies = {
"http": "socks5h://username:password@your-proxy-ip:port",
"https": "socks5h://username:password@your-proxy-ip:port",
}
当通过单个代理发出多个请求时,与其将其添加到每个请求中,使用带有代理的Python Requests会话变得更加高效。
使用代理的这种方法有助于在所有会话中保留设置。它还简化了代码,提高了性能,最重要的是,使实现变得更加容易。
创建会话非常简单,只需键入requests.Session()。
考虑以下示例:
import requests
# 创建会话
session = requests.Session()
session.proxies = {
"http": "http://username:password@your-proxy-ip:port",
"https": "http://username:password@your-proxy-ip:port",
}
# 通过会议提出要求
response = session.get("http://example.com")
此会话中的所有Python请求将默认使用设置的代理,无需任何额外配置。
当您积极与网站互动,无论是为了抓取目的还是自动化,反复使用相同的代理可能会导致您的账户被屏蔽。通过轮换代理,如果您有几个不同的代理服务器,这是可以管理的。
以下示例显示了一个循环的实现,该循环为与网页的每次交互轮换代理:
import requests
import random
proxies_list = [
"http://username:password@your-proxy-ip[1]:port",
"http://username:password@your-proxy-ip[2]:port",
"http://username:password@your-proxy-ip[3]:port",
]
session = requests.Session()
for _ in range(5):
proxy = random.choice(proxies_list) # 随机选择代理
session.proxies = {"http": proxy, "https": proxy}
response = session.get("http://example.com")
print(f"Used proxy: {proxy}")
print(response.status_code)
总结一下,这里有一些建议可能帮助您更好地管理代理:
在本文中,我们涉及了代理服务器是什么,如何在Python Requests中正确使用代理,以及通过会话管理代理以简化代码。示例还显示了SOCKS和常规代理的使用,如何处理认证,以及代理管理。
Мы получили вашу заявку!
Ответ будет отправлен на почту в ближайшее время.
С уважением proxy-seller.com!
评论: 0