【发布时间】:2018-08-18 05:39:10
【问题描述】:
我正在尝试从此http://jsbin.com/noxuqusoga/edit?html 获取代理和端口值,输出 html 页面。
这是该页面的表格结构示例,其中仅包含一个 tr,但实际 HTML 中有许多具有相似结构的 tr 元素:
<table class="table" id="tbl_proxy_list" width="950">
<tbody>
<tr data-proxy-id="1355950">
<td align="left"><abbr title="103.227.175.125">103.227.175.125 </abbr></td>
<td align="left"><a href="/proxy-server-list/port-8080/" title="Port 8080 proxies">8080</a></td>
<td align="left"><time class="icon icon-check timeago" datetime="2018-08-18 04:56:47Z">9 min ago</time></td>
<td align="left">
<div class="progress-bar" data-value="22" title="1089">
<div class="progress-bar-inner" style="width:22%; background-color: hsl(26.4,100%,50%);"> </div>
</div>
<small>1089 ms</small></td>
<td style="text-align:center !important;"><span style="color:#009900;">95%</span> <span> (94)</span></td>
<td align="left"><img alt="sg" class="flag flag-sg" src="/assets/images/blank.gif" style="vertical-align: middle;" /> <a href="/proxy-server-list/country-sg/" title="Proxies from Singapore">Singapore <span class="proxy-city"> - Bukit Timah </span> </a></td>
<td align="left"><span class="proxy_transparent" style="font-weight:bold; font-size:10px;">Transparent</span></td>
<td><span>-</span></td>
</tr>
</tbody>
</table>
我能够废弃代理地址,但我在使用端口时遇到了困难,因为 <td> 没有 id 或类,并且作为值,有些具有超链接,而另一些则没有。
我怎样才能使整个报废结果的结果类似于 --> ip:port。
这是我的代码
$html = file_get_html('http://jsbin.com/noxuqusoga/');
// Find all images
foreach($html->find('abbr') as $element)
echo $element->title . '<br>';
foreach($html->find('td a') as $element)
echo $element->plaintext . '<br>';
请帮忙,
谢谢
【问题讨论】:
-
使用
DomNode->next_sibling获取下一个td和strip_tags去除<a>标签。 -
这看起来不像 DOM,而是一个名为
SimpleHTMLDOM的 PHP 库
标签: php html parsing simple-html-dom