我如何下载和解析部分网页?

时间:2012-04-10 16:23:33

标签: php parsing curl wget

我不想下载整个网页。这需要时间,需要大量的记忆。

如何下​​载该网页的一部分?然后我将解析它。

假设我只需要下载<div id="entryPageContent" class="cssBaseOne">...</div>。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

您无法通过“仅此HTML”下载部分网址。 HTTP仅支持部分下载的字节范围,并且没有HTML / XML文档树的概念。

因此,您必须下载整个页面,将其加载到DOM parser,然后仅提取您需要的部分。

e.g。

$html = file_get_contents('http://example.com/somepage.html');
$dom = new DOM();
$dom->loadHTML($html);
$div = $dom->getElementById('entryPageContent');

$content = $div->saveHTML();

答案 1 :(得分:0)

使用此:

curl_setopt($ch, CURLOPT_RANGE, "0-10000");

将使cURL仅下载网页的前10k字节。此外,它仅在服务器端支持此功能时才有效。许多解释的脚本(CGI,PHP,...)都忽略它。