【问题标题】:Extracting specific data from a web page using PHP [duplicate]使用 PHP 从网页中提取特定数据 [重复]
【发布时间】:2012-07-19 00:55:31
【问题描述】:

可能重复:
HTML Scraping in Php

我想知道是否有任何方法可以从网页中获取不时使用 PHP 更新的特定文本字符串。我搜索了“整个互联网”,但一无所获。刚刚看到preg_match可以做到,但是不明白怎么用。

想象一个网页包含以下内容:

<div name="changeable_text">**GET THIS TEXT**</div>

在使用file_get_contents 将页面放入变量后,我该如何使用 PHP 来实现?

提前致谢:)

【问题讨论】:

标签: php html screen-scraping


【解决方案1】:

你可能想看看

简单的 HTML DOM 库

这里有一个小教程: http://www.developertutorials.com/tutorials/php/easy-screen-scraping-in-php-simple-html-dom-library-simplehtmldom-398/

这是一个屏幕抓取 API,可让您将 html 提供给它,然后以 jQuery 类似语言获取其中的一部分。

【讨论】:

    【解决方案2】:

    你可以使用DOMDocument,像这样:

    $html = file_get_contents( $url);
    
    libxml_use_internal_errors( true);
    $doc = new DOMDocument;
    $doc->loadHTML( $html);
    $xpath = new DOMXpath( $doc);
    
    // A name attribute on a <div>???
    $node = $xpath->query( '//div[@name="changeable_text"]')->item( 0);
    
    echo $node->textContent; // This will print **GET THIS TEXT**
    

    【讨论】:

      【解决方案3】:

      您说的是data scraping:从人类可读的输出中提取数据的行为。在您的情况下,这是 &lt;div&gt; 标签之间的任何内容。使用PHP DOM 的扩展名获取您想要的标签并提取数据。谷歌搜索 PHP DOM 教程。

      【讨论】:

        【解决方案4】:
        $delements= file_get_html('url will go here'); 
        
        foreach($elements->find('element') as $ele) {
        
            //traverse according to your preferences
        
        } 
        
        //return or output
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-03-15
          • 1970-01-01
          • 2012-04-21
          • 2011-12-03
          • 2021-04-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多