0

我正在使用以下代码获取网站的内容

function get_content($url){
    $content = @file_get_contents($url);
    if( empty($content) ){
      $content = get_url_contents($url);
    }
    return $content;
}

function get_url_contents($url){
    $crl = curl_init();
    $timeout = 90;
    curl_setopt ($crl, CURLOPT_URL,$url);
    curl_setopt ($crl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($crl, CURLOPT_CONNECTTIMEOUT, $timeout);
    $ret = curl_exec($crl);
    curl_close($crl);
    return $ret;
}

$url = "http://www.site.com";
$html = get_content($url);
echo $html;

一切都很好,但我需要获取例如我所有的 div 元素或页面的标题或我的所有图像。

我怎样才能做到这一点?

谢谢

4

2 回答 2

5

使用 HTML 解析库。虽然其中有很多,但我个人使用过SimpleHTMLDom并且有很好的体验。它使用 JQuery 样式选择器,使其易于学习。

一些代码示例:

获取页面标题:

$html = str_get_html($html);
$title = $html->find('title',0);
echo $title->plaintext;

对于所有 div 元素:

$html = str_get_html($html);
$divs = $html->find('div');

foreach($divs as $div) {
   // do something;
}
于 2012-08-24T05:18:27.493 回答
1

您可以使用DOMDocument

例如:

$dom = new DOMDocument;
$dom->loadHTML($html);
$divs = $dom->getElementsByTagName('div');
foreach ($divs as $div) {
    echo $div->nodeValue. PHP_EOL;
}
于 2012-08-24T05:23:24.933 回答