【问题标题】:Requesting API Content on Localhost while using Tor + Privoxy使用 Tor + Privoxy 在 Localhost 上请求 API 内容
【发布时间】:2018-08-24 20:23:57
【问题描述】:

我正在使用 Tor、Privoxy 和 Python 匿名抓取网络上的资源。 Tor 配置了ControlPort 9051,而 Privoxy 配置了forward-socks5 / localhost:9050 .

我的脚本运行完美,除非我请求在同一台机器上运行在8000 上的 API 资源。如果我使用代理通过 urllib2 设置访问 API,我会得到一个空字符串响应。如果我使用新的非代理 urllib2 实例访问 API,我会收到 HTTP 错误 503:转发失败

我敢肯定,如果我向世界开放 8000,我将能够通过代理访问该端口。但是,必须有更好的方法来访问 localhost 上的资源。很好奇人们是如何处理这个问题的。

【问题讨论】:

  • 503 转发错误意味着代理仍在使用中。您确定访问 localhost 的 urllib2 实例没有以某种方式使用代理吗?
  • 是的,我想它仍在使用中。那么,问题是如何在 tor 之外发出请求,就像通常那样,同时仍然为其他请求运行它。第 1 步 - 使用 tor 获取资源。第 2 步 - 解析资源。第 3 步 - 点击内部 API。
  • 认为我可以将 urllib2.ProxyHandler() 设置为 localhost

标签: python proxy tor privoxy


【解决方案1】:

我能够通过使用以下打开器关闭代理并点击内部 API:

        ctx = ssl.create_default_context()
        ctx.check_hostname = False
        ctx.verify_mode = ssl.CERT_NONE
        opener = urllib2.build_opener(urllib2.HTTPSHandler(context=ctx))
        urllib2.install_opener(opener)

我不确定是否有更好的方法,但它确实有效。

【讨论】:

    猜你喜欢
    • 2012-11-07
    • 2023-03-10
    • 2013-08-12
    • 1970-01-01
    • 1970-01-01
    • 2017-09-20
    • 2015-07-28
    • 1970-01-01
    相关资源
    最近更新 更多