Захватите сайт с помощью PHP, а затем просмотрите его с помощью jQuery - PullRequest
3 голосов
/ 03 ноября 2010

Я строю систему, в которой мне нужно будет захватить содержимое веб-страницы с помощью PHP, а затем проанализировать ее для извлечения определенных таблиц и т. Д. Есть ли простой способ сделать это с помощью jQuery или лучше всего это сделать? написать функцию PHP для извлечения данных?

Ответы [ 6 ]

7 голосов
/ 03 ноября 2010

jQuery не имеет ничего общего с PHP и не может быть запущен без браузера, так что вам не повезло.

Однако, есть phpQuery , который позволяет анализировать DOM с помощью селекторов jQuery!

3 голосов
/ 03 ноября 2010

Сделайте это так в php с собственным php DOM-функциями и xpath:

    $dom = new DOMDocument();
    @$dom->loadHTML($html);
    $x = new DOMXPath($dom);
    // grab all tables with id of foo
    foreach($x->query("//table[@id='foo']") as $node)
    {
        // here is the html
                    echo $node->c14n();
                    // grab the containing text 
                    echo $node->textContent()
    }
1 голос
/ 03 ноября 2010

Вы не можете.JQuery для JavaScript, который на стороне клиента, и для его выполнения требуется механизм JavaScript.

Я бы посоветовал вам прочитать HTML как XML, но вы столкнетесь с различными проблемами, если HTML неXHTML действителен.

1 голос
/ 03 ноября 2010

Вы можете использовать функции DOM, доступные в PHP http://php.net/manual/en/book.dom.php

0 голосов
/ 03 ноября 2010

Есть несколько пакетов php, которые могут помочь вам в этом, curl, dom и xpath.

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

0 голосов
/ 03 ноября 2010

это круто

http://sourceforge.net/projects/simplehtmldom/

пример:

// Create DOM from URL or file
$html = file_get_html('http://www.google.com/');

// Find all images
foreach($html->find('img') as $element)
       echo $element->src . '<br>';

// Find all links
foreach($html->find('a') as $element)
       echo $element->href . '<br>'; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...