我试图从这个页面解析文本我的方法是curl和dom但它只是返回一个空白页面。如果有人能告诉我如何做到这一点,将不胜感激。我被困住了,我不知道从这里开始。
答案 0 :(得分:2)
DOM
代码按预期工作。 <span>
没有文字节点:
<span
id="ctl00_ctl00_contentPlaceHolder_…_msgTextBody"
class="msgBody"
style="color:#525B64;"></span>
XPath返回的DOMNodeList
将为空。如果您删除了/text()
测试,它将包含DOMElement
的{{1}},这将为<span>
返回一个空字符串。
在页面提供给您的浏览器后,您尝试解析的文字将插入JavaScript客户端。使用nodeValue
获取页面时不会发生这种情况,因为DOM
不是JavaScript解释器。
您要查找的邮件位于DOM
块中。您可以解析该块并尝试使用正则表达式提取它们,例如
<script>
上面会将JavaScript解析并解码为PHP对象数组,然后您可以使用$xp = new DOMXpath($dom);
$nodes = $xp->query('//script[contains(., "var messages")]');
preg_match_all(
'~var messages = (.*\]);~',
$nodes->item(0)->nodeValue,
$messages);
$messages = json_decode($messages[1][0]);
var_dump($messages);
进行访问。