带Tor的Scrapy-Splash

时间:2017-02-16 07:46:05

标签: scrapy tor scrapy-splash polipo

我已成功使用此链接运行Scrapy with Tor:http://pkmishra.github.io/blog/2013/03/18/how-to-run-scrapy-with-TOR-and-multiple-browser-agents-part-1-mac/

但我无法使用Tor运行Splash。

在Scrapy-settings.py中,我指向polipo for http_proxy(8123是polipo port):

HTTP_PROXY = 'http://127.0.0.1:8123'

在polipo.config中,我指示tor(9150是tor端口):

socksParentProxy = localhost:9150

diskCacheRoot=""

适用于scrapy。在飞溅中它不起作用。但我不得不说像在scrapy-settings.py中一样使用splash或docker来为http_proxy使用polipo。 Docker应该以某种方式使用polipo,polipo将指向tor。我怎么能这样做?

我用以下方式运行:

sudo docker run -p 5023:5023 -p 8050:8050 -p 80511 scrapinghub/splash

并且在etc / default / docker中我试过docker应该用这个指向polipo:

export http_proxy='http://127.0.0.1:8123'
Environment="http_proxy=http://127.0.0.1:8123"

但我无法成功。我究竟做错了什么?谢谢:))

1 个答案:

答案 0 :(得分:3)

你需要

  1. 可以从Splash Docker容器访问Tor;
  2. 告诉Splash使用此Tor代理。
  3. 对于(2),您可以使用Splash proxy profiles或直接设置代理,可以在proxy参数中,也可以在request:set_proxy中使用splash:on_request回调Lua脚本。例如,如果可以从Splash Docker容器访问Tor作为tor:8123,则可以执行以下请求:

    http://<splash-url>:8050/render.html?url=...&proxy=socks5://tor:8123
    

    另外,请看一下https://github.com/TeamHG-Memex/aquarium - 它会设置所有这些 - 它设置了&#39; tor&#39;代理配置文件,在另一个Docker容器中启动Tor,并链接这些容器。要在通过Aquarium部署的Splash中使用Tor访问远程网站,您只需在请求中添加proxy=tor GET参数:

    http://<splash-url>:8050/render.html?url=...&proxy=tor