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 ответ
Вам нужно
- сделать Tor доступным из контейнера Splash Docker;
- скажите 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