如果您在浏览器中访问此页面:http://www.x-rates.com/d/TRY/table.html您可以看到它工作正常,但当我尝试$doc = new DOMDocument(); $doc->loadHTMLFile('http://www.x-rates.com/d/TRY/table.html');
时,它会返回404.我也尝试过file_get_contents()
并以这种方式将html发送到DOMDocument,但没有运气。任何帮助都感激不尽。
答案 0 :(得分:4)
404看起来像您为URL提供的标准响应代码:
$ curl -I http://www.x-rates.com/d/TRY/table.html
HTTP/1.1 404 Not Found
Date: Mon, 01 Aug 2011 12:23:49 GMT
Server: Apache/2.2.19
Content-Type: text/html
您可以获取HTTP响应正文并使用DomDocument作为字符串加载它。
可以使用file_get_contents
Docs并设置ignore_errors
HTTP context option来完成此操作。示例代码:
$url = 'http://www.x-rates.com/d/TRY/table.html';
// Create a stream
$opts = array(
'http'=>array(
'ignore_errors'=> true,
)
);
$context = stream_context_create($opts);
// Open the file using the HTTP headers set above
$file = file_get_contents($url, false, $context);
$doc = new DOMDocument();
$doc->loadHTML($file);
答案 1 :(得分:0)
该页面正在返回404,我相信这样做是为了让它更难以刮掉它。我在他们的网站上发现了这个:
不允许使用PHP,LWP,Java和Microsoft控件等工具获取数据
您可能需要仔细检查您是否真的被允许做您正在做的事情,我担心您可能会侵犯版权。