好吧,所以我一直在与此战斗一段时间,所以也许有人可以帮助我。php简单的DOM解析器
我试着去得到这个HTML电子邮件中的链接:
<div id="field_11" class="fieldRow span12 lastFieldRow">
<span class="caption">E-mail</span>
<span class="output">
<script type="text/javascript">
<!--
document.write('<a hr'+'ef="mai'+'lto'+':'+
'%40;%67;%6d;%61;%69;%6c;<\/a>');
//-->
</script>
<a href="mailto:%40%67%6d%61%69%6c">@mail</a>
</span>
</div>
我试着去获取HTML代码“@mail”的一部分,在href =后“的mailto:...”部分。不是document.write()部分,而是代码中的最后一个标记。
由于某种原因,当我试图让输出类的标签跨度的孩子,它认为它只有1个孩子是脚本标签,但我似乎无法抓住电子邮件纯文本。
到目前为止我有:
$target_url = "some_web_site";
$html = new simple_html_dom();
$html->load_file($target_url);
foreach($html->find('span[class=output]') as $d){
echo $d->children(1)->plaintext . "<br />";
}
任何帮助吗?
你的代码应该工作,它的输出(或错误信息)是什么? –
它打印出一堆这些错误:注意:尝试获取非对象的属性在/Applications/MAMP/htdocs/webcrawler/index.php在线224 – user3586322
听起来像你的'load_file()'没有加载正确。你可以尝试删除第二行和第三行(两者都以'$ html'开始,并替换为'$ html = file_get_html($ target_url);'? –