Как узнать, что страница с JS (AJAX)?
У меня следующий нетривиальный вопрос:
Задача - загрузить из интернета код страницы и осуществить его парсинг, как-то:
- Получить содержимое всех ссылок <a>
- Получить содержимое контентных тэгов, таких как <p>, <table> и т.д.
- и т.д. и т.п.
Какие средства можно использовать для решения данной проблемы?
- Средства, предоставляемые QtWebKit
- Другие средства (допустим, htmlcxx)
Всё бы хорошо, но у QtWebKit есть один большой минус - он производит рендер страницы - для того, чтобы, если сайт типа facebook.com (имеющий исключительно JS-код) - на выходе давать "человеческий" html
На эту операцию по рендеру и получению JS -> html тратится достаточно много ресурсов - по сравнению с другими средствами, которые осуществляют парсинг страницы исключительно в виде "как есть" - т.е. пришёл html код - всё ок, пришёл js код (с twitter'а, например) - ну чтож, значит, пропарсить и получить ссылки не удастся
Так вот, выходит, что использование QtWebKit обосновано только в том случае, если на сайте преобладает JS-код, AJAX-вставки и т.п.
Отсюда вопрос - есть ли какие-то адекватные способы осуществления проверки того, что на старнице присутствует динамический JS-код для показа контента?
Знает ли кто-то такие способы?
Буду очень признателен за любой ответ!
QNetworkAccessManager , не?
Вообще, мы само собой его используем
Но "нормального" способа, а не хака, для определения наличия динамического конента нами там найдено не было
"Динамический контент" определяется наличием такого тега как SCRIPT. И смотря где ты хочешь определить его наличие.
script то понятно. но скриптом может подгружаться какой-то безобидный js-скрипт, который на контент страницы никак не влияет
Собственно, и предлагал получать страницу через NetworkAccess а в ней искать <script>.