Простой HTML-анализатор DOM получить TR из таблицы - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь записать http://spys.one/free-proxy-list/, но здесь я просто хочу получить столбец Proxy by ip:port, только я проверил, на сайте было 3 таблицы

Кто-нибудь может мне помочь?

<?php
    require "scrapper/simple_html_dom.php";

    $html=file_get_html("http://spys.one/free-proxy-list/");
    $html=new simple_html_dom($html);

    $rows = array();
    $table = $html->find('table',3);

    var_dump($table);

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Попробуйте приведенный ниже скрипт.Он должен получить вам только необходимые элементы и ничего больше:

<?php
include 'simple_html_dom.php';
$url = "http://spys.one/free-proxy-list/";

$html = file_get_html($url);
foreach($html->find("table[width='65%'] tr[onmouseover]") as $file) {
    $data     = $file->find('td', 0)->plaintext;
    echo $data . "<br/>";
}
?>

Вывод, который он производит как:

 176.94.2.84
 178.150.141.93
 124.16.84.208
 196.53.99.7
 31.146.161.238
0 голосов
/ 28 сентября 2018

Я действительно не знаю, чем занимается ваша простая библиотека html dom.Тем не мение.В настоящее время в PHP есть все, что вам нужно для анализа конкретных элементов dom.Просто используйте собственный PHP класс DOMXPath для запроса элементов dom.

Вот краткий пример получения первого столбца таблицы.

$dom = new \DOMDocument();
$dom->loadHTML('https://your.url.goes.here');

$xpath = new \DomXPath($dom);

// query the first column with class "value" of the table with class "attributes"
$elements = $xpath->query('(/table[@class="attributes"]//td[@class="value"])[1]');

// iterate through all found td elements
foreach ($elements as $element) {
    echo $element->nodeValue;
}

Это возможнопример.Это не решит точно вашу проблему с http://spys.one/free-proxy-list/.Но он показывает, как вы могли легко получить первый столбец определенной таблицы.Единственное, что вам нужно сделать сейчас, это найти правильный запрос в домене данного сайта для таблицы, которую вы хотите запросить.Поскольку дом данного сайта довольно давно представляет собой довольно сложный макет таблицы, и таблица, которую вы хотите проанализировать, не имеет уникального идентификатора или чего-то еще, вы должны выяснить.

...