【问题标题】:Simple html dom parser get tr from table简单的 html dom 解析器从表中获取 tr
【发布时间】:2019-03-04 05:08:29
【问题描述】:

我正在尝试废弃 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);

【问题讨论】:

  • 请详细说明问题。有问题的代码没有错误,但它没有显示任何解决实际问题的努力(获取所需的列)。此外,请提供有问题的示例输入,而不是作为外部链接。
  • 实际上,我想从 spys.one 中删除代理,如何使用简单的 html dom 解析器来做到这一点?
  • 您基本上是在要求我们为您编写整个代码。这不是 SO 的工作方式。

标签: php dom web-scraping html-table simple-html-dom


【解决方案1】:

试试下面的脚本。它应该只为您获取所需的项目,而不是其他:

<?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

【讨论】:

  • 好先生,但是如何获得端口呢?
【解决方案2】:

我真的不知道,你简单的 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 或其他东西,所以您必须找出。

【讨论】:

  • 先生,这里的表没有属性类,有3个表怎么办?
  • 我以前检查过该网站。但是 StackOverflow 不是一个为您的问题提供完整解决方案的网站。这都是关于示例,您如何自己解决问题。积极的副作用:你学到了一些东西。我的示例中显示了您需要的所有内容。自己找出来,哪个查询是查询给定网站特定表内容的正确查询。我不是来做你的工作的,伙计。 ;)
  • 真的吗?否决票,因为您必须为自己考虑?谢谢!
猜你喜欢
  • 2014-03-18
  • 1970-01-01
  • 1970-01-01
  • 2019-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-07
  • 2012-01-17
相关资源
最近更新 更多