解析网页的源给定URL

时间:2014-10-17 10:01:17

标签: php parsing url

如果给出URL,您如何解析某个网页的源代码?我想从源代码中找到作者,标题以及上次修改的时间。

我的想法是使用file_get_contents()解析源代码。然后,对于作者,我将查看源代码中的< meta name =" author"含量=" [...]" >然后提取内容中的内容。对于标题,我要寻找<标题> [...]< / title>并提取内部。我不确定在上次修改时我会做什么。

这些方法有用吗?还有更好的方法吗?

3 个答案:

答案 0 :(得分:0)

您可以使用file_get_contents。

例如:

$content = file_get_contents('http://www.external-site.com/page.php');

然后变量$ content将拥有外部站点的内容。

答案 1 :(得分:0)

您需要解析DOM

尝试使用像这样的解析器:http://simplehtmldom.sourceforge.net/

答案 2 :(得分:0)

使用curl(当“allow_url_fopen”指令为false并且更灵活时,它仍然有效。)

要解析网页源代码,请使用DOM库,但在加载HTML内容之前应禁用libxml错误输出。

示例:

<?php
$url = 'http://stackoverflow.com/';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$content = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
curl_close($ch);
if( $content === null || $httpCode >= 400 ) {
    die();
}

libxml_use_internal_errors(true);
$dom = new DOMDocument();
$dom->loadHTML($content);

$title = null;
$titleNodes = $dom->getElementsByTagName('title');
if( $titleNodes->length === 1 ) {
    $title = $titleNodes->item(0)->textContent;
}