简单 html dom 解析器从 table 获取 tr
Simple html dom parser get tr from table
我正在尝试废弃 http://spys.one/free-proxy-list/
,但在这里我只想获取 Proxy by ip:port
列
我检查了网站有 3 table
谁能帮帮我?
<?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);
我真的不知道,你的简单 html dom 库是做什么的。反正。现在 PHP 已经包含了解析特定 dom 元素所需的一切。只需使用 PHP 自己的 DOMXPath class 来查询 dom 个元素。
这是获取 table 的第一列的简短示例。
$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/
的问题。但它向您展示了如何轻松获取特定 table 的第一列。您现在唯一要做的就是在给定站点的 dom 中为您要查询的 table 找到正确的查询。因为给定站点的 dom 是很久以前的一个非常复杂的 table 布局,而您要解析的 table 没有唯一的 ID 或其他东西,您必须找出.
试试下面的脚本。它应该只为您获取所需的项目,而不是其他任何东西:
<?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
我正在尝试废弃 http://spys.one/free-proxy-list/
,但在这里我只想获取 Proxy by ip:port
列
我检查了网站有 3 table
谁能帮帮我?
<?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);
我真的不知道,你的简单 html dom 库是做什么的。反正。现在 PHP 已经包含了解析特定 dom 元素所需的一切。只需使用 PHP 自己的 DOMXPath class 来查询 dom 个元素。
这是获取 table 的第一列的简短示例。
$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/
的问题。但它向您展示了如何轻松获取特定 table 的第一列。您现在唯一要做的就是在给定站点的 dom 中为您要查询的 table 找到正确的查询。因为给定站点的 dom 是很久以前的一个非常复杂的 table 布局,而您要解析的 table 没有唯一的 ID 或其他东西,您必须找出.
试试下面的脚本。它应该只为您获取所需的项目,而不是其他任何东西:
<?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