Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как с помощью phantomjs пройти по ссылкам (https://javascript.ru/forum/misc/58331-kak-s-pomoshhyu-phantomjs-projjti-po-ssylkam.html)

protey2004 22.03.2016 05:20

По мне, так парсеры прекрасно пишутся в связке с php.
Я phantomjs использую для исполнения js кода на страницах, которые что-то генерирую динамически. Получается вполне универсальная вещь, которая и картинки умеет загружать и любую информацию доставать, даже под авторизацией.

Пример вызова из php:
echo shell_exec('/usr/bin/phantomjs /phantom.js http://market.yandex.ru/model.xml?modelid=8230052&hid=90594'');


Пример phantom.js:
"use strict";
var page = require('webpage').create(),
system = require('system'),
	url = system.args[1];

page.open(url, function(status) {
    if (status === "success") {
        page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
            page.evaluate(function() {
                console.log($('h1').html());
            });
            phantom.exit(0);
        });
    } else {
      phantom.exit(1);
    }
});


Далее, php часть можно вставлять в любое место php парсера и тем же phpQuery разбирать полученный кусок html.

Разве что для таких взятых phantomjs страниц надо отдельно авторизацию проходить, и тут, похоже, без casperjs не обойтись.

Да, по моему опыту, скорость таких парсеров напрямую зависит от скорости соединения между хостингом парсера и хостингом целевого сайта, от веса страниц, от кол-ва и веса картинок, от нагруженности удаленного сайта (от того, насколько быстро он страницы отдает). Львиная доля времени уходит именно на это.


Часовой пояс GMT +3, время: 05:30.