Показать сообщение отдельно
  #31 (permalink)  
Старый 22.03.2016, 05:20
Новичок на форуме
Отправить личное сообщение для protey2004 Посмотреть профиль Найти все сообщения от protey2004
 
Регистрация: 04.11.2013
Сообщений: 3

По мне, так парсеры прекрасно пишутся в связке с 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 не обойтись.

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