运行 tor 和 splash 在同一个 Docker 容器上

Running tor and splash on same Docker container

我正在开发一个从各种网站上收集优惠券代码的抓取工具。我正在为此使用 python scrapy,并且我不得不为此使用 splash 浏览器,因为优惠券代码显示在弹出窗口中。

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

我在 docker 上 运行ning splash 作为:

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

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

我在另一个 docker 容器上尝试 运行ning 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"""

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

我按照 link https://www.sachsenhofer.io/install-splash-use-tor-privoxy-docker-cloud-stack/

自己找到了解决方案

想找类似东西的可以按照上面的link.