Как получить данные при наведении (ajax) на любой гусеничный php - PullRequest
3 голосов
/ 30 марта 2012

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

Я использую PHP и simplehtmldom для анализа / сканирования страницы.

Ответы [ 4 ]

4 голосов
/ 25 декабря 2012

Данные о наведении не могут быть получены никакими сканерами.

Сканеры сканируют веб-страницу и получают целые данные (источник HTML-страницы). Это вид, который мы можем просмотреть, как только мы нажмем URL. Чтобы навести курсор мыши на атрибут HTML на странице, т.е. выполнить действие вручную. И в настоящее время никакие сканеры не выполняют действия для зависания и получения этих данных, насколько мне известно. Таким образом, невозможно получить данные зависания сканерами.

2 голосов
/ 27 декабря 2012

Одна из возможностей - выполнить javascript с использованием интерпретатора javascript (быстро взгляните на это http://php.net/manual/en/book.v8js.php, и это может быть тем, что вам нужно), а затем написать некоторый дополнительный код javascript для запуска событий наведения на нужном месте.elements.

Если страница использует AJAX для заполнения необходимых полей, может быть проще использовать такой инструмент, как Firebug, для просмотра вызовов AJAX и воссоздать их в коде, чтобы заполнить недостающие элементы DOM.

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

1 голос
/ 28 декабря 2012

Предлагаю заглянуть в Селен . Я использовал это много раз, и он определенно может сделать onmouseover

0 голосов
/ 01 января 2013

Вы не можете получить динамический исходный код, который требует взаимодействия с пользователем с помощью простого php curl.Тем не менее, с PhantomJS вы можете достичь состояния зависания, а также получить будущую загрузку ajax-страницы.У него есть кривая обучения, и вам нужно установить его с помощью node.js на вашем сервере, посмотрите, есть ли у вас права.

С PhantomJS вы сможете получать onmouseover или динамический ajax-контент, посколькуэто безголовый браузер, который посещает страницы с вашими командами.

...