无法通过urllib和代理访问网站

1 投票
1 回答
1652 浏览
提问于 2025-04-16 11:52

我用 ssh -D localhost:5678 me@server.com 打开了一个 SSH 隧道,现在想在我的 Python3 应用程序中使用它。

#!/usr/bin/python3.1
# -*- coding:Utf-8 -*-

import urllib.request

proxyhand = urllib.request.ProxyHandler({"socks" : "http://localhost:5678"})
opener = urllib.request.build_opener(proxyhand)
page = opener.open("http://www.mysite.com")

mysite.com 只能从 server.com 的网络访问(这就是我使用 SSH 隧道的原因)。

我可以顺利访问其他网站,没有任何问题,但访问 mysite.com 时却出现了连接超时的错误。隧道是有效的,因为我可以通过配置好的 Firefox 访问 mysite.com,具体方法可以参考 这里的说明

谢谢!

1 个回答

0

你是不是应该用 http 作为协议,而不是 socks 呢?所以:

proxyhand = urllib.request.ProxyHandler({"http" : "http://localhost:5678"})

撰写回答