2014-12-02 148 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