Получение HTML после выполнения клиентских скриптов

andrissig

Новичок
Здравствуйте.

Есть Web страница. Визуально на странице много текста. Я хочу этот текст получить с помощью библиотеки PHP Simple HTML DOM Parser. Но ничего не выходит. Получаю пустую страницу (другие страницы с этого сайта подгружаются успешно). На сколько я понял, то этот текст подгружается с помощью Ajax.

Вот из чего состоит страница:

Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns="http://www.w3.org/1999/xhtml">    
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <meta http-equiv="Content-Script-Type" content="text/javascript" />
    <title>...</title>
    <link href="shared/css/print.css" rel="stylesheet" type="text/css" />
    <link href="css/tv.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
</head>
<body style="background-color:#fff;padding-left:10px;padding-right:10px;">

<script>
jQuery.ajax({
    type: "POST",
    url: "https://"+window.location.hostname+"/ajax/oficpaz.php",
    data: "do=js&sess=o3vjro76847f1e2uqebqr904a6&id=262575",
    success: function(data){
        jQuery("body").html(data);
    }
});
</script>

</body>
</html>
Подскажите, пожалуйста, как получить тот текст?

Спасибо.
 

AmdY

Пью пиво
Команда форума
запросить страницу
https://"+window.location.hostname+"/ajax/oficpaz.php
 

hell0w0rd

Продвинутый новичок
Разве вопросы про парсинг не запрещены на этом форуме?
 

hell0w0rd

Продвинутый новичок

vasinsky

Новичок
)) ты какой то бред несёшь. я ничего вредного не советовал. если ты привык делать некоторые вещи по своему - это не значит что твой вариант единственный верный.

твой линк - на сообщение - видимо твоего забугорного собрата, который так же ничем не обосновал своё утверждение.

я всегда парсил регулярками - а все эти библии не трогал - они нафиг не нужны, если тока тем кто вообще не шуршит в regexp/

покажи кусок html - который не возможно распарсит с помоЩью regexp

посмотри что внутри библии, это набор регулярок - с "удобной" обёрткой
 
Последнее редактирование:

hell0w0rd

Продвинутый новичок
vasinsky, использовать die вместо исключений - однозначно не верно. Парсить html регулярками, вместо xml-парсеров - однозначно не верно. HTML - не регулярный язык.
Ты повсюду используешь фразу: "Если ты привык делать так - это не значит что только так правильно". Да, это так, но есть куча вещей, для которых существуют "best practices", которые лучше соблюдать, потому что:
- мы предполагаем что другие программисты, работающие с твоим кодом знают о том что так делать правильно
- если погуглить (например как с html и регулярками) можно найти веские доводы, почему стоит делать именно так, а не наоборот

И еще, погугли xpath, он гораздо мощнее и быстрее регулярок, потому что придуман для xml-подобных структур
 

vasinsky

Новичок
ты зачем флудишь??? ты хочешь мои посты обсуждать - создай тему - и пиши сколько угодно. я на все эти моменты дал аргументированный момент - в ответ - что-то вроде мычания.
для xml есть отдельная библия - в самом php

по поводу die() в mysqli я N раз сказал - что в момент отладки я не вижу смысла заставлять обрабатывать интерпритатор код дальше - выборки всё равно нету, пусть там хоть ошибки обрабатываются, хот условия ветвления, хоть исключения

гуглить и искать всякие обёртки ты можешь скока угодно.

ты от лица всех умеющих программистов заявления кидаешь?

твои предположения - это всего лишь твои предположения, у меня тоже на счет тебя есть парочка, но правила форума не позволяют мне тут описать их.

и если тебе хочется и нетерпится - сказать что я не прав в каком либо совете - ту будь добр давать аргументированное подтверждение, а не кидать ссылки на каких то Джонов из аклахомы.

всё остальное негативное в моё сторону - прошу в личку, я думаю "команде форума" - не подуше весь этот срач в топиках.

теперь самое время кричать об агрессивности и риадонли.
 
Последнее редактирование:

hell0w0rd

Продвинутый новичок
vasinsky, я не стрелочник, но это вы, господин хороший, флудите.
xpath - это целый язык запросов к xml. http://www.w3.org/TR/xpath-datamodel/ вот вам rfc, коли сложно самому поискать.
http://php.net/manual/ru/class.domxpath.php - вот вам нативная реализация

Если честно, мне не особо важно что подумает команда форума, если подумает - сотрет мои сообщения, мне важно чтобы новичок начитавшись твоих вредных советов не стал фигней заниматься, вот и все
 

vasinsky

Новичок
да ты не обоснованно называешь их вредными. уф.

то тебе выше корня сайта залезть надо
то скрипт видите ли ты останавливать не хочешь.

это вилами на воде - и твои привычки - не приравнивай их к эталонам

по поводу regexp for html

Регуля́рные выраже́ния (англ.regular expressions) — формальный язык поиска и осуществления манипуляций сподстроками в тексте, основанный на использовании метасимволов (символов-джокеров, англ.wildcard characters). По сути это строка-образец (англ.pattern, по-русски её часто называют «шаблоном», «маской»), состоящая из символов и метасимволов и задающая правило поиска.
http://ru.wikipedia.org/wiki/Регулярные_выражения

определение соответствует задаче? да и не надо ляля.

при этом заметь - я не отрицаю полезность xpath

а библиотеки типа shtmldom - для лентяев

я вообще не понял как в теме про парсинг HTML вдруг засверкало твое XML
ежихе беременной и то понятно - что для парсинга XML есть отдельные библии, хоть сам simple xml, не говоря даже про то что xml это древо, а html - язык разметки
 
Последнее редактирование:

hell0w0rd

Продвинутый новичок
vasinsky, выносить код выше public директории - это одна из "best practices", я уже пытался тебе объяснить почему это хорошо - не понял, не надо
Да, скрипт не должен умирать просто так, если вдруг mysql_query вернула false. Есть тонна вещей которые хотелось бы сделать после обработки неожиданной ошибки, тебе это не нужно - ок. DOMDocument отлично кушает html, а xpath - изначально создан для xml, вот и "засверкал" XML
Нет, задаче не соответствует поиск по DOM-дереву с помощью регулярки, потому что HTML нельзя прасить регулярками
 

vasinsky

Новичок
безопасность хранения файлов сайта - это работа администратора сервера, а не веб мастера

запретит листинг директории в .htaccess : Options -Indexes

что-то отвалилось на сервере - по шапке админу, исходники уплыли в паблик - иск в суд, компенсация


на процессе отладки - ловят ошибки - чтобы написать алгоритм их обработки

не надо сваливать все в одну кучу

HTML нельзя прасить регулярками
да блин, ты аргументируй

я тебе ещё раз говорю - загляни в сорцы shtmldom - он на регулярках весь написан.

нельзя и нельзя, чё ты заладил - ты если утверждаешь что-то и с тобой спорят - давай внятный ответ.
 
Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
vasinsky, так получилось, что проще написать path до элемента начиная от извесного чем перебирать все совпадения.
нас интересуют все ключики и значения в <td> в <div id="xyz" /> обязательно парно только если ключики равны перечисленным значениям, при этом если ключик равен определенному значению, то и URL линка значения. (я ленив играть в олимпиаду)
задача админа следить за сервером но не за программой. уменьшить количество потенциальных дыр на прямой вызов того или иного скрипта, проще, спрятав все скрипты кроме запускаемого за пределы document root
 
Последнее редактирование:

vasinsky

Новичок
обязательно парно
т.е. клиенту, в случае не валидного html - мы скажем:
-извеняйте, не могём

и ответа - на то что регулярками это делать НЕЛЬЗЯ я не услышал.

спрятав все скрипты кроме
малость на параною похоже - но если всё таки так хочется - таки да - но не заставляйте так делать меня
и утвержадть что все файлы в корне - это говнокод - тоже не надо.

и получается всё просто - вместо говорить того что я даю вредные советы - нужно предложитьТС альтернативный вариант (альтернативный, а не правильный против моего "не верного") и описать плюсы.

разве так не будет проще - вместо того чтобы холиварить?
 

WMix

герр M:)ller
Партнер клуба
vasinsky, я уверен ты пишешь красиво и кроме как в index.php у тебя одни классы, не думай что это у всех. это не параноя, это как
$id = isset($_GET['id']) ? $_GET['id'] : '42';
теперь есть увереность что $id определен (нет уверености что это не массив) но уже легче!
я не сказал что регулярные выражения не катят, но и DOM поправится при желании (tidy)
 

vasinsky

Новичок
я 10 раз писал про приведение к типу там где это необходимо
и кроме как в index.php у тебя одни классы
да вам братцы тут через одного на тнт - к экстрасенсам срочно надо

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

за то у меня есть совершенно обоснованное и проверенное мнение - что тот кто "свои проекты пишет на ООП" - не обязательно понимает что такое ООП
но за то он перед заказчиком навалит кучу классов - показать свой проф. уровень.
 

vasinsky

Новичок
ну вот и истеричка. вам в аптеку и подальше от компьютера.
видимо один из группы "я найду тебя по IP"
 
Сверху