这只是关于Python优秀的Requests模块的一个简短、简单的介绍。
我在文档中似乎找不到变量“proxies”应该包含什么。当我向它发送一个带有标准“IP:PORT”值的字典时,它拒绝了它并要求输入 2 个值。所以,我猜(因为文档中似乎没有涵盖这一点)第一个值是 ip,第二个值是端口?
文档仅提到这一点:
proxies – (可选)将协议映射到代理的 URL 的字典。
所以我尝试了这个…我应该做什么?
proxy = { ip: port}
在将它们放入字典之前,我应该将它们转换为某种类型吗?
r = requests.get(url,headers=headers,proxies=proxy)
在 requests 模块中,proxies 参数应该是一个字典,将协议(如 ‘http’ 和 ‘https’)映射到完整的代理 URL。代理 URL 应该包含协议、IP 地址和端口。
requests
proxies
以下是如何正确设置和使用 proxies 参数的示例:
proxies 字典应该将协议映射到包含完整代理 URL 的字符串,格式为 protocol://IP:PORT。例如:
protocol://IP:PORT
import requests # 定义代理字典 proxies = { 'http': 'http://123.123.123.123:8080', 'https': 'https://123.123.123.123:8080' } # 使用代理发起请求 url = 'http://example.com' response = requests.get(url, proxies=proxies) # 打印响应文本 print(response.text)
proxies 字典:
发起请求:
requests.get
如果代理需要认证,可以在代理 URL 中包含用户名和密码:
proxies = { 'http': 'http://username:password@123.123.123.123:8080', 'https': 'https://username:password@123.123.123.123:8080' } url = 'http://example.com' response = requests.get(url, proxies=proxies) print(response.text)
如果你有单独的 IP 和端口,可以像这样构建代理 URL:
ip = '123.123.123.123' port = '8080' proxy_url = f'http://{ip}:{port}' proxies = { 'http': proxy_url, 'https': proxy_url } url = 'http://example.com' response = requests.get(url, proxies=proxies) print(response.text)