我正在使用以下代码获取网站的内容
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元素或页面的标题或我所有的图像。
我该怎么做?
感谢
使用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;
}
您可以使用DOMDocument
例如:
$dom = new DOMDocument;
$dom->loadHTML($html);
$divs = $dom->getElementsByTagName('div');
foreach ($divs as $div) {
echo $div->nodeValue. PHP_EOL;
}