Web ページ全体をダウンロードしたくありません。時間がかかり、多くのメモリが必要です。
その Web ページの一部をダウンロードするにはどうすればよいですか? それから私はそれを解析します。
のみをダウンロードする必要があるとします<div id="entryPageContent" class="cssBaseOne">...</div>
。どうやってやるの?
URL の一部を「この HTML のみ」でダウンロードすることはできません。HTTP は部分ダウンロードのバイト範囲のみをサポートし、HTML/XML ドキュメント ツリーの概念はありません。
そのため、ページ全体をダウンロードしてDOM パーサーにロードし、必要な部分だけを抽出する必要があります。
例えば
$html = file_get_contents('http://example.com/somepage.html');
$dom = new DOM();
$dom->loadHTML($html);
$div = $dom->getElementById('entryPageContent');
$content = $div->saveHTML();
これを使用して:
curl_setopt($ch, CURLOPT_RANGE, "0-10000");
cURL は Web ページの最初の 10k バイトのみをダウンロードします。また、サーバー側がこれをサポートしている場合にのみ機能します。多くの解釈されたスクリプト (CGI、PHP、...) はそれを無視します。