我正在尝试做一些HTML DOM解析。我正在进行的解析依赖于页面的URI。问题是当我加载HTML文件时,如下所示:
// Creat HTML DOM
$dom_document = new DOMDocument();
@$dom_document->loadHTMLFile('http://www.google.com/');
我有时会被网站重定向(例如Google可能会将我重定向到特定国家/地区的域名)。问题:
编辑1:
function get_html_content($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_ENCODING, 'gzip');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE); // not good for 301 redirects
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
// Check if any error occured
if(curl_errno($ch))
{
echo 'Curl error: ' . curl_error($ch);
assert(FALSE);
die();
}
curl_close($ch);
return $data;
}
答案 0 :(得分:0)
答案在两个方面都是“是”,但没有使用loadHTMLFile()
。
如果可以,请使用curl。它提供了更加详细的重定向控制。
使用它获取内容,并使用loadHTML()
将它们导入DOMDocument。
参见例如