使用PHP简单HTML DOM抓取数据
我喜欢这样的结构:使用PHP简单HTML DOM抓取数据,php,parsing,simple-html-dom,Php,Parsing,Simple Html Dom,我喜欢这样的结构: <tr> <td> <strong>Tel. nr.:</strong> +370 000 000 <strong>Faksas:</strong> +370 5 0000 </td> </tr> 电话号码: +370 000 000 Faksas: +370 5 0000 我对使用简单的HTML
<tr>
<td>
<strong>Tel. nr.:</strong>
+370 000 000
<strong>Faksas:</strong>
+370 5 0000
</td>
</tr>
电话号码:
+370 000 000
Faksas:
+370 5 0000
我对使用简单的HTMLDOM有了新的认识。我需要的是内容+370000 000和+370 50000。我发现这个库不支持Xpath,如何编写一个查询来提取HTML链接后的内容
我只找到了一种方法,获取HTML,并使用正则表达式从
获取文本,直到
,但可能简单的HTML DOM有自己的方法来实现这一点?像这样尝试
<?php
require('simple_parser.php');
$html = str_get_html('
<tr>
<td>
<strong>Tel. nr.:</strong>
+370 000 000
<strong>Faksas:</strong>
+370 5 0000
</td>
</tr>');
$td =$html->find('td',0) ;
echo $td->plaintext;
?>
发布完整的代码以获得清晰的答案您可以使用->find('text')
来获取文本节点:
$sample_html = '
<table>
<tr>
<td>
<strong>Tel. nr.:</strong>
+370 000 000
<strong>Faksas:</strong>
+370 5 0000
</td>
</tr>
</table>
';
$html = str_get_html($sample_html);
foreach($html->find('tr') as $row) {
$first_td = $row->find('td', 0);
echo $first_td->find('text', 2);
echo $first_td->find('text', 4);
}
你的密码在哪里?尝试在
中使用children,我认为您提供的RegEx方法是合法的。我刚刚浏览了文档,您可以通过检查从
到
$dom = new DOMDocument;
$dom->loadHTML($sample_html);
$xpath = new DOMXpath($dom);
$elements = $xpath->query('//tr[1]/td[1]/text()');
foreach($elements as $e) {
echo trim($e->textContent) . '<br/>';
}