2014-12-02 149 views
-1

我需要從網頁上顯示一些消息,所以我需要從網站提取數據。但我無法提取數據,如下面的代碼:如何從網頁上抓取數據?

$html=file_get_html("http://listverse.com/2014/12/01/10-times-us-foreign-policy-was-wildly-inconsistent/"); 
    foreach($html->find('article h2') as $element) 
    { 
     echo "<h2>".$element->plaintext."</h2>"."<br>"; 

     foreach ($html->find('article h2 p') as $element1) { 

      echo "<pre>";print_r($element1->plaintext); 
     } 

但我得到正確的標題,但每個段落是多餘的。

+0

這實際上是一個骯髒的方法從該新聞網站獲取數據。當您查看源代碼時,您會看到有一個.rss提要。你爲什麼不用它來獲取數據? 例如:http://listverse.com/feed/ 而您的帖子特定的一個: http://listverse.com/2014/12/01/10-times-us-foreign-policy-was -wildly-inconsistent/feed/ – Duikboot 2014-12-02 12:50:54

+0

rss沒有完整的詳細信息 – kavita 2014-12-02 12:58:53

+0

請注意,複製另一個網站的新聞並重新發布它可能會違反版權。 – Quentin 2014-12-02 13:00:18

回答

1

段落後跟標題,他們不是他們的後代(和HTML不允許段落從標題下降)。

得到標題後,你需要看看他們的兄弟姐妹(例如循環他們,直到你得到一個不是一個段落或另一個標題)。

+0

有任何解決方案 – kavita 2014-12-02 12:55:34

+0

是的。看到答案的第二段。 – Quentin 2014-12-02 12:59:35

+0

可以幫我通過一些代碼我是新的刮擦? @Quentin – kavita 2014-12-02 13:03:36