【问题标题】:Running tor and splash on same Docker container在同一个 Docker 容器上运行 tor 和 splash
【发布时间】:2018-03-15 10:06:02
【问题描述】:

我正在开发一个从各种网站上抓取优惠券代码的刮刀。我为此使用 python scrapy,我不得不为此使用启动浏览器,因为优惠券代码显示在弹出窗口中。

现在我想使用 tor 通过代理发送请求。但我无法在同一个 docker 容器上运行 Tor 和启动浏览器。

我在 docker 上运行 splash 为:

sudo docker run -p 8050:8050 scrapinghub/splash;

有些人说要在单独的 docker 容器上使用 tor 和 splash 并连接它们。但是,我无法找到解决方法。

我尝试在另一个 docker 容器上运行 tor:

sudo docker run -it -p 8118:8118 -p 9050:9050 -d dperson/torproxy

我正在发送这样的请求:

def start_requests(self):
    url = 'http://www.example.com/some-url'
    yield SplashRequest(
        url,
        self.parse,
        endpoint='execute',
        args={'lua_source': LUA_SCRIPT,
                'wait': 2})

我的 LUA_SCRIPT 是

LUA_SCRIPT = """ function main(splash)
    splash:on_request(function(request)
        request:set_proxy{
            host = "localhost",
            port = 9050,
        }
    end)
    splash.images_enabled = false
    assert(splash:go{splash.args.url})
    splash:wait(splash.args.wait)           
    return splash:html()
end"""

谁能建议我应该如何在 Tor 中使用 splash? (没有 tor,一切正常。)

【问题讨论】:

  • 我建议你在不同的 docker 容器上运行它们。正如我所见,由于内存泄漏等原因,splash 总是会重新启动自己。您希望它们是独立的。
  • 您可以使用docker-compose 运行docker 并以简单的方式连接它们,或者阅读以下教程如何运行它们并链接它们deis.com/blog/2016/connecting-docker-containers-1

标签: docker web-crawler tor scraper scrapy-splash


【解决方案1】:

我自己通过链接https://www.sachsenhofer.io/install-splash-use-tor-privoxy-docker-cloud-stack/找到了解决方案

任何寻找类似东西的人都可以点击上面的链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    相关资源
    最近更新 更多