1

特定のドキュメントリンクを持つタイトルとURLを取得したい。したがって、以下のコードから、情報を取得したいと思います:タイトル、および特定のURLダウンロード.pdf http://link.pdfを持つhttp://linkWeb.com

これが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>'; 
       }
    }
}
?>
4

1 に答える 1

1

それ$linkが引用スパンであるとすると、IDを持つwithを$link->parent()->parent()返します。そして、それは親ではなく探している要素の兄弟であるため、結果を返しません。div01divTitlediv.download$link->parent()->parent()->find('.download a')

おそらく$link->parent()->parent()->parent()->find('.download a')もっとうまくいくでしょう。他の問題があるかもしれませんが、それは間違いなくそれらの1つです。

于 2012-07-22T03:14:21.950 に答える