Мой вопрос: как очистить данные с этого сайта http://vtis.vn/index.aspx Но данные не отображаются, пока вы не нажмете, например, «Danh sách chậm». Я старался очень тщательно и тщательно, когда вы нажимаете «Danh sách chậm», это событие onclick, которое запускает некоторые функции javascript, одна из функций js состоит в том, чтобы получить данные с сервера и вставить их в держатель тегов / мест и в этот момент вы можете использовать что-то вроде firefox для проверки данных и да, данные отображаются пользователям / зрителям на веб-странице. Итак, как же мы можем отказаться от этих данных программно?
я написал функцию утилизации, но, конечно, он не получает данные, которые я хочу, потому что данные недоступны, пока я не нажму кнопку «Danh sách chậm»,
<?php $Page = file_get_contents('http://vtis.vn/index.aspx'); $dom_document = new DOMDocument(); $dom_document->loadHTML($Page); $dom_xpath_admin = new DOMXpath($dom_document_admin); $elements = $dom_xpath->query("*//td[@class='IconMenuColumn']"); // foreach ($elements as $element) { $nodes = $element->childNodes; foreach ($nodes as $node) { echo (mb_convert_encoding($node->c14n(), 'iso-8859-1', mb_detect_encoding($content, 'UTF-8', true))); } } }
Благодарим вас, StackOverflow – отличное место. D.
Вам нужно посмотреть на PhantomJS .
На своем сайте:
PhantomJS является безглавым WebKit с API JavaScript. Он имеет быструю и родную поддержку для различных веб-стандартов: обработка DOM, селектор CSS, JSON, Canvas и SVG.
Используя API, вы можете настроить «браузер» на взаимодействие с этой страницей и очистить нужные данные. Затем вы можете делать все, что вам нужно; в том числе передать его скрипту PHP, если это необходимо.
При этом, если это вообще возможно, попробуйте не «царапать» данные. Если есть ajax-вызов, который делает страница, возможно, есть API, который вы можете использовать вместо этого? Если нет, возможно, вы можете убедить их сделать это. Это, конечно, было бы намного проще и удобнее в обслуживании, чем очистка экрана.
Во-первых, вам нужен PhantomJS:
Во-вторых, вам нужны PHP phantomjs:
https://github.com/jonnnnyw/php-phantomjs http://jonnnnyw.github.io/php-phantomjs/4.0/2-installation/
В-третьих, загрузите пакет в свой скрипт: require ('vendor / autoload.php');
Наконец, вместо file_get_content вы загрузите страницу через phantomjs
$client = Client::getInstance(); $client->getEngine()->setPath('/usr/local/bin/phantomjs'); $client = Client::getInstance(); $request = $client->getMessageFactory()->createRequest(); $response = $client->getMessageFactory()->createResponse(); $request->setMethod('GET'); $request->setUrl('https://www.your_page_embeded_ajax_request'); $client->send($request, $response); if($response->getStatus() === 200) { echo "Do something here"; }