运行 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.