我经常使用cURL / file_get_contents
来获取页面的源代码。
但是,有一个网站对我不起作用。
代码如下:
<?php
$c = curl_init('https://plus.nl');
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($c, CURLOPT_POST, true);
//curl_setopt(... other options you want...)
$html = curl_exec($c);
if (curl_error($c))
die(curl_error($c));
// Get the status code
$status = curl_getinfo($c, CURLINFO_HTTP_CODE);
curl_close($c);
echo $html;
?>
在我的浏览器中,它一直在加载。当我尝试其他网站时,它会立即起作用。 这个网站怎么了,它不起作用?
答案 0 :(得分:3)
编辑:尝试了您的操作后,实际上可以在控制台中看到错误。它比x-frame-option安全性简单得多。 HTML在加载的HTML的相对路径中引用javascript和CSS。就您而言,加载的HTML来自您的网站,而不是原始的plus.nl,因此对css / javascript / images / etc的所有请求均导致404(未找到)。
原始答案(根据我的进一步调查,该答案不适用):答案很可能是使用X-FRAME-OPTION
标头。基本的html几乎为空;其他所有内容均通过javascript加载。它们的X-FRAME-OPTION标头仅允许在浏览器中的URL为https:/www.plus.nl/的情况下加载资产,而在您的情况下则不是,因此,不能加载/执行任何动态内容。
答案 1 :(得分:0)
我尝试了file_get_contents
,它可以在网站上运行。但是,由于该网站检测到缺少javascript,因此它不是很有用。将用户代理设置为curl并不能解决问题。
我刚收到消息
我们破坏了网站。 De huidige pagina werkt nog niet optimaal op mobiel。
翻译为:
我们目前正在网站上工作。当前页面不适用于移动设备。
所以也许您的IP被他们禁止了。