简单的html dom抓取所有<p>属性

时间:2016-08-11 14:34:10

标签: php html dom simple-html-dom

我刚刚学习了simple_html_dom.php,我尝试只获取entry-content类中的所有p属性内容,并将其设为一个段落或一个句子。

这里是我想要获取内容的网站上的原始html文件。

<div class="entry-content">
<p><img class="alignnone" src="xxxxxxxxxxx" width="800" height="450" /></p>
<p>data1<span id="more-287848"></span></p>
<p>data2</p>
<p>data3</p>
<p>data4</p>
<p>......</p>
<p>......</p>
<p>dataN</p>

<div class="wpa wpmrec">
            <a class="wpa-about" href="https://wordpress.com/about-these-ads/" rel="nofollow"></a>
            <div class="u">
                <script type='text/javascript'>
                (function(g){g.__ATA.initAd({sectionId:34789711, width:300, height:250});})(window);
                </script>
            </div>
</div>
</div>

这是我的代码:

<?php
 require_once __DIR__.'/simple_html_dom.php';
 $html = new simple_html_dom();
 $html->load_file('https://xxxxxxxxx');
 $isi = $html->find('div[class="entry-content"]',0)->innertext;
?>
<table border="1">
 <thead>
   <tr>
     <td><?php echo $isi; ?></td>
   </tr>
 </thead>
</table>

怎么做?谢谢你们。

1 个答案:

答案 0 :(得分:0)

您应该能够迭代所有<p>元素并将文本添加到变量中。我没试过这个,但是这样的话:

$complete = "";
foreach($html->find('div.entry-content p') as $p) 
{
    $complete .= $p->plaintext; 
    echo $p->plaintext;
}
echo $complete;

这里的文档中有很多信息: http://simplehtmldom.sourceforge.net/manual.htm