Maxim
Ребят, кто работал с phpquery?
Евгений
это который парсер?
Maxim
да
Евгений
ну нормальный в принципе, простой
Миша
Ну что, квартирные одуванчики, займёмся мужской работой
Евгений
в твоей лошади будет еще одно окно?
Maxim
в документе ищу блок с классом, а мне приходит всь документ
Евгений
в 90% случаях ты что0то вписал не верно
Евгений
в мохнатые года его использовал
Евгений
Avent
Maxim
в том-то и прикол, что все правильно прописал
Sentinel
Евгений
И желательно тот сайт, который ты пытаешься парсить
Maxim
$url = 'http://www.vhlru.ru/standings/league/492/';
$file = file_get_contents($url);
$doc = phpQuery::newDocument($file);
$table = $doc->find('.conference_table .uni_table tbody');
Евгений
$content = phpQuery::newDocument( $content );
$content = pq( $content )->find( 'div.js-metrika-offers-count' );
Евгений
вот в примерах есть
Евгений
найди 3 отличия
Евгений
$table = pq($doc)->find('.conference_table .uni_table tbody');
Maxim
Странно, предыдущий парсер и без pq работает
Anton
Вообще, лучшее, что я пользовался для парсинга - это связка ноджс+nightmare. Получается очень лаконично, легко контролируется визуально и довольно быстро. Каталог в 3500 позиций выпарсивается за полчаса.
Евгений
ну если на php надо, то газл неплох
Maxim
Maxim
Anton
Могу свой код скинуть. Он заточен под каталоги, в которых поиск по артикулу работает. Я беру прайс конторы, выдергиваю из него в виде Джейсона артикул+цену, а дальше на нужном сайте по артикулам все выпарсиваю.
Avent
в каком месте покажи
Maxim
сразу после кода проверяю чере вар дамп
Avent
ну покажи как
Avent
весь код скинь
Avent
и что ты выдернуть хочешь тоже скинь
Avent
текст/поле/содержимое элементов
Avent
просто напиши
Maxim
ща
Avent
вообще через var_dump не лучший метод использования, потому что данные могут содержать в себе весь документ
Avent
попробуй так
$table = $doc->find('.conference_table .uni_table tbody');
$data = pq($table)->html();
Avent
или так:
foreach ($table as $item) {
$data = pq($item)->html();
}
Avent
также при парсинге сайтов смотри в исходник не через инспектор (панель разработчика), потому что там уже сформированный DOM страницы, динамический (с помощью javascript или еще чего). А парсер берет исходный текст
Avent
типа view-source:https://ya.ru/
Maxim
через view source смотрел. страница статичная
Maxim
через print_r тоже выводится весь документ
Maxim
Даже когда в таблице ищу tr один. Приходит весь документ
Евгений
ты код показывай
Евгений
непонятно что ты через print_r выводишь
Евгений
в доке phpQuery еще вот что есть:
PRINT OUTPUT
// 1st way print phpQuery::getDocument($doc->getDocumentID()); // 2nd way print phpQuery::getDocument(pq('div')->getDocumentID()); // 3rd way print pq('div')->getDocument(); // 4th way print $doc->htmlOuter(); // 5th way print $doc; // another... print $doc['ul'];
Mihail
ребят кто кстати из недопилиного парсинга сможет сделать CSV? был парнишка один который сделал все в mysql загрузил категории и товары и пропал.... с суммой денег :(
Mihail
жаль что 9000 не вернуть
Mihail
ну или его адресс не узнать.
Mihail
я бы к нему приехал
Avent
Avent
Avent
на python есть хорошее "автономное" решение - scrappy
Avent
пишется паук/пауки, и можно по API запускать их, получать данные и т.д.
Avent
Avent
то есть с такой же структурой как там есть?
Anonymous
хотя 9 тысяч эта не та сумма... нет бы, достаточная, чтобы смотать на Мальдивы. Тогда человека ещё понять хотя бы можно было)
Евгений
Mihail
у меня есть два файла которые как он сказал что даже если он пропадет то любой доделает
Avent
ну это сложно, даже не знаю как сделать, выгрузить из mysql таблицы в csv
Avent
phpadmin поставлен?
Mihail
у меня только 2 файла и больше ничего
Anonymous
ребят есть эффективный способ получить grandparent с помощью fenom???
Avent
@aldos, есть. Все вверх от текущего. Глубину выбирай сам,
iWatchYouFromAfar
Avent
{var $parents = $_modx->getParentIds($_modx->resource.id, 2, array('context' => 'web'))}
Avent
хоть 10 grandparent от текущего
Avent
цифра 2 - "глубина" вверх
Avent
{var $parents = $_modx->getParentIds($_modx->resource.id, 2, ['context' => 'web'])}
Avent
вот так вернее
Anonymous
Avent
пиши максимальную
Avent
5500
Avent
500
Avent
получишь список всех родителей от текущего вверх и до 0
Anonymous
Благодарю за ответы
Anton
Кто нибудь делал фильтр по TV полям? например нужно вывести от 10руб до 30руб. Что то все перепробовал не получается, может у кого нибудь пример есть?
Maxim
через where делал?
Anton
Да, так делал
&where=`{
"price:IN":[300,800]
}`