Браузер-заставка ничего не отправляет через http-прокси. Страницы загружаются, даже если прокси не работает.
Я использую scrapy с заставкой в python 3 для извлечения страниц после аутентификации для веб-сайта Angular.js. Сценарий может извлекать страницы, выполнять аутентификацию и извлекать страницы после аутентификации. Однако он не использует настройку прокси-сервера на локальном хосте: 8090, и wireshark подтверждает, что трафик, поступающий с порта 8050, идет на какой-то порт в диапазоне 50k.
Настройка такова: всплеск работает локально на образе докера (последний) на порту 8050 — Python 3 работает локально на Mac — Zap-прокси работает локально на Mac через порт 8090 — доступ к веб-странице осуществляется через VPN
Я попытался указать прокси-хост: порт через сервер, используя Chrome со сценарием LUA. Страница загружается без прокси.
Я попытался указать прокси в скрипте Python как с Lua, так и с API (args={'proxy':'host:port'}, и страница загружается без использования прокси.
Я попытался использовать файл прокси-хоста и получил статус 502.
- Прокси установлен через Lua в Chrome (без ошибок, не проксировано):
function main(splash, args)
splash:on_request(function(request)
request:set_proxy{
host = "127.0.0.1",
port = 8090,
username = "",
password = "",
type = "HTTP"
}
end
)
assert(splash:go(args.url))
assert(splash:wait(0.5))
return {
html = splash:html(),
png = splash:png(),
har = splash:har(),
}
end
req = SplashRequest("http://mysite/home", self.log_in,
endpoint='execute', args={'lua_source': script})
- Прокси, установленные через апи (статус 502):
req = SplashRequest("http://mysite/home",
self.log_in, args={'proxy': 'http://127.0.0.1:8090'})
- Прокси установлен через Lua в Python (без ошибок, не проксировано):
def start_requests(self):
script = """
function main(splash, args)
assert(splash:go(args.url))
assert(splash:wait(0.5))
splash:on_request(function(request)
request:set_proxy{
host = "127.0.0.1",
port = 8090,
username = "",
password = "",
type = "HTTP"
}
end
)
return {
html = splash:html(),
png = splash:png(),
har = splash:har(),
}
end
"""
req = SplashRequest("http://mysite/home", self.log_in,
endpoint='execute', args={'lua_source': script})
# req.meta['proxy'] = 'http://127.0.0.1:8090'
yield req
- Прокси устанавливается через файл прокси в образе докера (статус 502): файл прокси:
[proxy]
; required
host=127.0.0.1
port=8090
Команда оболочки:
docker run -it -p 8050:8050 -v ~/Documents/proxy-profile:/etc/splash/proxy-profiles scrapinghub/splash --proxy-profiles-path=/etc/splash/proxy-profiles
Все вышеперечисленное должно отображать страницу в zap proxy на порту 8090.
Некоторые из вышеперечисленных, кажется, устанавливают прокси, но прокси не может связаться с localhost: 8090 (статус 502). Некоторые вообще не работают (без ошибок, без проксирования). Я думаю, это может быть связано с тем, что используется образ докера.
Я не собираюсь использовать Selenium, потому что это то, что он заменяет.