我想获得具有特定文档链接的标题和网址。所以,从下面的代码中,我想得到信息:标题,以及具有特定网址下载的http://linkWeb.com .pdf http://link.pdf
这是html页面:
<div class="title-download">
<div id="01divTitle" class="title">
<h3>
<a id="01Title" onmousedown="" href="http://linkWeb.com">Titles</a>
<span id="01LbCitation" class="citation">(<a id="01Citation" href="http://citation.com">Citations</a>)</span></h3>
</div>
<div id="01downloadDiv" class="download">
<a id="01_downloadIcon" title="http://link.pdf" onmousedown="" target=""><img id="ctl01_icon" class="small-icon";" /></a>
</div>
这是代码,但它返回空白结果:
<?php
include 'simple_html_dom.php';
set_time_limit(0);
$url ='http://example.com';
$html = file_get_html($url) or die ('invalid url');
foreach($html->find('span[class=citation]') as $link){
foreach($link->parent()->parent()->find('.download a') as $link2){ //I confused with the code in this line
if(strtolower(substr($link2->title, strrpos($link2->title, '.'))) === '.pdf') {
$link = $link->prev_sibling();
echo $link->plaintext.'<br>';
echo $link->href.'<br>';
echo $link2->title.'<br>';
}
}
}
?>
答案 0 :(得分:1)
鉴于$link
是引文范围,$link->parent()->parent()
会返回ID为div
的{{1}}。而且,由于01divTitle
是您要查找的div
元素的兄弟而不是父级,.download
不会返回任何结果。
也许$link->parent()->parent()->find('.download a')
会更好。可能还有其他问题,但这绝对是其中之一。