如何解析HTML网页并删除<br/>标签?

时间:2016-04-04 08:09:02

标签: html-parsing simple-html-dom

我需要解析一个包含<p>个标签的网站(其中很多个)我希望得到它们并将它们放在csv文件中(在同一列中)。

经过测试,我看到段落不在同一列上,这是因为<br>标签上的<p>示例:

HTML:

<div class="text">
     <p> hello <br> friends </p>
     <p> parsing is cool <br> using <br> simpleHTMLdom </p>
</div>

当我解析下面的html时,我得到两个<p>但不在同一个csv“列”。

我的代码:

if($html_book_page->find('.text')){

   foreach($html_book_page->find('div[class=text] p') as $bookPreview){
      array_push($book, $bookPreview->plaintext);

        }                     
    }

$ book是包含所有文本的数组,我将$ book放在csv上,如:

fputcsv($open_csv, array_values($book), ',', ' ');

任何方式获得:  (csv:TEXT的标题)和里面: “你好朋友使用simpleHTMLdom解析很酷”?因为暂时我有“你好”而在另一栏我有“朋友”..“解析很酷”......“使用”....“simpleHTMLdom”

谢谢大家

1 个答案:

答案 0 :(得分:1)

为什么在插入CSV之前没有jQuery.remove()?像这样:

$('.text p').find('br').remove()

如果您不想从页面中永久删除<br>,可以在for循环中执行以下操作:

foreach($html_book_page - > find('div[class=text] p') as $bookPreview) {
  $bookPreview.innerHTML.replace("<br>", "");
  array_push($book, $bookPreview - > plaintext);
}