@FastSpace said in feature request: get browser remote-debugging-port:
@sergerdn Это фича нужна 0.001% юзеров баса, поэтому её не добавят.
Не спорю. Года назад не помню, что у меня было в голове, когда я создавал этот топик.
Планируется ли когда-то в будущем встроить Headless browser(не совсем такое описание, как нам нужно) ?
Чтобы при работе с HTTP клиентом, была возможность выполнять JS на странице при этом не запускать инстанс для браузера. Что-то типа получить производительность такую же большую , как при работе на запросах, только в придачу скрипты, чтобы выполнялись на странице. (Что-то хотелка разгулялась-_- Надо прекращать мучить админа, софт и так мего-супер крут.)
@out Так а Headless browser разве дает существенный прирост производительности?
Вот я протестировал phantomjs с таким скриптом(загрузить stackoverflow и ждать 20 секунд)
var page = new WebPage();
page.open('http://stackoverflow.com/', function (status) {
just_wait();
});
function just_wait() {
setTimeout(function() {
phantom.exit();
}, 20000);
}
Ест приблизительно 80 мб, как вкладка в обычном браузере. А возможность запускать БАС с командной строки уже есть.
@support согласен, сам Headless browser не даст особо прироста (ему нужно также все рендерить и т.д.), но есть ли какая-то возможность работать на get/post чисто на запросах, без браузера. и в придачу чтобы JS выполнялся на тех ответах, что мы получаем после запросов. Я видимо не могу тут компетентно выразится )
например, есть сайты, что попросту не хотят работать если JS отключен. По этому нам необходимо с ними работать через браузер, чтобы JS выполнялся или уметь расшифровывать ту лапшу из JS кода, чтобы мы могли генерировать, то чего не хватает , если работать без JS.
короч вот: возможно ли вообще (не в БАС, а вообще технически) работать без браузера, а только через запросы и выполнять код JS что находятся на запрашиваемых страницах, т.к. JS генерит всякие значения (токены, кукисы). Своего рода защита такая у сайтов, от роботов, грубо говоря, если человек без JS в браузере, то иди гуляй )
@out Js имеет доступ к разметке страницы и ко многим другим вещам в браузере. Я понимаю о чем идет речь, но не знаю, как это можно реализовать. http://stackoverflow.com/questions/802225/how-do-i-use-mechanize-to-process-javascript Например, тут спрашивают почти о том же.
Единственное решение, которое могу придумать - взять какой-то очень легкий браузерный движок и приделать его к хттп клиенту.
@out Да, я точно сейчас делать это не буду. Сейчас доделываю модуль для приема смс
@out Нашел интересный флаг, --disable-threaded-compositing он отключает отрисовку страницы, но сохраняет приблизительно четверть памяти. Скриншоты делать нельзя, и могут возникнуть проблемы с капчей но js на странице работает. И еще он работает только в режиме записи. Этот флаг можно кидать в файл chrome_command_line.txt
@blackhacker --disable-threaded-compositing в новой версии не будет работать в режиме записи. С созданием скриншотов ничего не сделаешь, но некоторым скриптам это не нужно.
@blackhacker обычным гет запросом получать каптчу.
другое дело , если рекаптча, то там да, отрисовка нужна (и то не всегда, смотря какой метод использовать)
@blackhacker Обычную капчу можно получать или гет запросом или через кеш. Модуль рекапчи будет работать только с капмонстром, но в будущем не вижу проблем его переделать и для сервисов и ручного распознавания.