【问题标题】:unable to access website with urllib and proxy无法使用 urllib 和代理访问网站
【发布时间】:2011-06-27 17:37:58
【问题描述】:

我用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,我有一个连接超时错误。隧道正常工作,因为我可以使用配置为 as explained here 的 firefox 访问 mysite.com。

谢谢

【问题讨论】:

    标签: python proxy urllib ssh-tunnel


    【解决方案1】:

    您应该使用http 作为协议,而不是socks?因此:

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

    【讨论】:

    • 使用“http”,我对任何网站都有一个“BadStatusLine”异常。
    • SOCKS 对于 SSH 重定向是正确的。我认为问题在于urllib 没有 SOCKS 支持。你可能有另一个箍要跳过来完成这个工作。试试这个:stackoverflow.com/questions/2317849/…
    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    相关资源
    最近更新 更多