Headless browser

Запросы функционала
  • @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 Например, тут спрашивают почти о том же.
    Единственное решение, которое могу придумать - взять какой-то очень легкий браузерный движок и приделать его к хттп клиенту.

  • @support это было бы интересно, но не спеши с этим, т.к. пока это мало кому надо, может у тебя и так поважнее дела есть. Но на будущее было бы интересно..

  • @out Да, я точно сейчас делать это не буду. Сейчас доделываю модуль для приема смс

  • @out Нашел интересный флаг, --disable-threaded-compositing он отключает отрисовку страницы, но сохраняет приблизительно четверть памяти. Скриншоты делать нельзя, и могут возникнуть проблемы с капчей но js на странице работает. И еще он работает только в режиме записи. Этот флаг можно кидать в файл chrome_command_line.txt

  • @support Значит, без режима записи не будет работать, и Render() тоже не будет работать?

  • @blackhacker --disable-threaded-compositing в новой версии не будет работать в режиме записи. С созданием скриншотов ничего не сделаешь, но некоторым скриптам это не нужно.

  • @support А как же распознание каптчи?

  • @blackhacker обычным гет запросом получать каптчу.
    другое дело , если рекаптча, то там да, отрисовка нужна (и то не всегда, смотря какой метод использовать)

  • @blackhacker Обычную капчу можно получать или гет запросом или через кеш. Модуль рекапчи будет работать только с капмонстром, но в будущем не вижу проблем его переделать и для сервисов и ручного распознавания.