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

时间:2018-03-15 10:06:03

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

我正在使用刮刀从各个网站中删除优惠券代码。我正在使用python scrapy,我不得不使用启动浏览器,因为优惠券代码显示在弹出窗口中。

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

我在docker上运行启动:

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

有些人说要在单独的码头工人容器上使用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,一切都很好。)

1 个答案:

答案 0 :(得分:0)

我自己通过链接https://www.sachsenhofer.io/install-splash-use-tor-privoxy-docker-cloud-stack/

找到了解决方案

任何寻找类似事物的人都可以按照上述链接。