Scrapy-Splash с Tor

Мне удалось запустить Scrapy с Tor по этой ссылке: http://pkmishra.github.io/blog/2013/03/18/how-to-run-scrapy-with-TOR-and-multiple-browser-agents-part-1-mac/

Но я не мог запустить Splash с Tor.

В Scrapy-settings.py я указал на polipo для http_proxy(8123 - это порт polipo):

HTTP_PROXY = 'http://127.0.0.1:8123'

В polipo.config я указывал на tor(9150 - это порт tor):

socksParentProxy = localhost:9150

diskCacheRoot=""

Который отлично подходит для скрапа. В заставке это не работает. Но я должен сказать, всплеск или докер, чтобы использовать polipo для http_proxy, как в scrapy-settings.py. Докер должен каким-то образом использовать 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 ответ

Решение

Вам нужно

  1. сделать Tor доступным из контейнера Splash Docker;
  2. скажите Splash использовать этот прокси Tor.

Для (2) вы можете использовать либо профили прокси Splash, либо установить прокси напрямую, либо в аргументе прокси, либо с помощью request:set_proxy в обратном вызове splash:on_request сценария Lua. Например, если Tor доступен из контейнера Splash Docker как tor:8123, вы можете сделать запрос следующим образом:

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

Кроме того, взгляните на https://github.com/TeamHG-Memex/aquarium - он настраивает все это - он настраивает профиль прокси-сервера 'tor', запускает Tor в другом контейнере Docker и связывает эти контейнеры. Чтобы получить доступ к удаленному веб-сайту с помощью Tor в Splash, развернутом через Aquarium, вы можете просто добавить proxy=tor Получить аргумент для запроса:

http://<splash-url>:8050/render.html?url=...&proxy=tor
Другие вопросы по тегам