我正在尝试废弃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);
答案 0 :(得分:0)
尝试以下脚本。它应该只获取您所需的项目,而不会其他:
<?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
答案 1 :(得分:-1)
我真的不知道您的简单html dom库是做什么的。无论如何。如今,PHP具备了解析特定dom元素所需的全部功能。只需使用PHP自己的DOMXPath class来查询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/
的问题。但是它向您展示了如何轻松获得特定表的第一列。现在唯一要做的就是在给定站点的dom中找到要查询的表的正确查询。由于给定站点的dom是很久以前的非常复杂的表布局,并且要解析的表没有唯一的ID或其他内容,因此必须找出来。