Headless browser



  • Планируется ли когда-то в будущем встроить Headless browser(не совсем такое описание, как нам нужно) ?
    Чтобы при работе с HTTP клиентом, была возможность выполнять JS на странице при этом не запускать инстанс для браузера. Что-то типа получить производительность такую же большую , как при работе на запросах, только в придачу скрипты, чтобы выполнялись на странице. (Что-то хотелка разгулялась-_- Надо прекращать мучить админа, софт и так мего-супер крут.)


  • administrators

    @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 в браузере, то иди гуляй )


  • administrators

    @out Js имеет доступ к разметке страницы и ко многим другим вещам в браузере. Я понимаю о чем идет речь, но не знаю, как это можно реализовать. http://stackoverflow.com/questions/802225/how-do-i-use-mechanize-to-process-javascript Например, тут спрашивают почти о том же.
    Единственное решение, которое могу придумать - взять какой-то очень легкий браузерный движок и приделать его к хттп клиенту.



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


  • administrators

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


  • administrators

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



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


  • administrators

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



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



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


  • administrators

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


Log in to reply
 

Looks like your connection to Bablosoft was lost, please wait while we try to reconnect.