我正在尝试编写一个文档,该文档将通过编码不佳的网页并返回title元素。但是,我计划抓取网站的人没有使用任何类,只是div元素。下面是我试图抓取的源网页:
<tbody>
<tr>
<td style = "...">
<div style = "...">
<div style = "...">TEXT I WANT</div>
</div>
</td>
</tr>
</tbody>
当我在chrome中复制xpath时,我得到这个字符串:
/html/body/table/tbody/tr[2]/td[3]/table/tbody/tr[1]/td/div/div[3]
我无法确定将该字符串放在xpath查询中的位置。 如果不是xpath查询,我可以做一个preg_match吗?
我试过了:
$location = '/html/body/table/tbody/tr[2]/td[3]/table/tbody/tr[1]/td/div/div[3]';
$html = file_get_contents($URL);
$doc = new DomDocument();
$doc->loadHtml($html);
$xpath = new DomXPath($doc);
// Now query the document:
foreach ($xpath->query($location) as $node) {
echo $node, "\n";
}
但页面上没有任何内容。
感谢。
编辑:完整的代码: http://pastebin.com/K5tZ4dFH
EDIT2:清洁代码屏幕截图:http://i.imgur.com/lWKheBy.png
答案 0 :(得分:1)
从查看来源,请尝试以下操作:
$html = file_get_contents($URL);
$doc = new DOMDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$nodes = $xpath->query("//div[contains(@style, 'left:20px')]");
foreach ($nodes as $node) {
echo $node->textContent;
}
答案 1 :(得分:1)