MIT*_*THU 8 python proxy web-scraping python-3.x
htt(p|ps)当我向https网站发出请求时,在代理中的第二个参数中使用的正确方法是什么?我在下面使用的代理只是一个占位符.
当我尝试这样(它的工作原理):
proxies = {
'https': 'http://79.170.192.143:34394',
}
Run Code Online (Sandbox Code Playgroud)
当我尝试这样(它也有效):
proxies = {
'https': 'https://79.170.192.143:34394',
}
Run Code Online (Sandbox Code Playgroud)
htt(p|ps)代理中的第二个只是占位符http吗?如果我向网站发出请求怎么办?
在这种情况下,两个设置都有效。就我个人而言,我宁愿使用适当的协议,因为它是明确的,但两种设置都会产生相同的连接。即使没有设定协议,
proxies = {'https': '79.170.192.143:34394'}
Run Code Online (Sandbox Code Playgroud)
所有 HTTPS 请求都将使用此代理。
对于 HTTP 和 HTTPS 代理,不需要包含协议(可以由请求 URL 方案确定)。然而,对于 SOCKS 代理,我们必须使用正确的协议,例如:
proxies = {'https': 'socks5://79.170.192.143:34394'}
Run Code Online (Sandbox Code Playgroud)
否则连接会失败。
代理字典中的“https”键指定连接到目标主机的协议。如果有“https”键,则所有 HTTPS 连接都将使用代理。除非代理中有“http”键,否则 HTTP 请求不会被代理。
代理 URL 字符串中的“https”指定与代理服务器通信的协议。一般来说,使用正确的协议(即https://79.170.192.143:34394)很重要,但在这种情况下没有什么区别。创建 HTTPS 连接时仅使用代理主机和端口(源代码),并忽略协议。
虽然此特定配置有效,但最好使用正确的协议。例如,以下代理设置将无法建立连接。
proxies = {'http': 'https://79.170.192.143:34394'}
proxies = {'https': 'socks5://79.170.192.143:34394'}
proxies = {'https': 'invalid-scheme://79.170.192.143:34394'}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
291 次 |
| 最近记录: |