TI希望获取远程站点的html代码,为此我使用CURL,这是我的代码
$URL = "http://example.com/";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8');
$content = curl_exec($ch);
curl_close($ch);
这几乎适用于每个网站,我获得了完整的HTML内容。
但是有一个网站,其结果是html代码到</head>
,即在结束head
标记之后,curl没有得到html源代码。
当我通过浏览器view source
看到这个网站的html源代码时,这里是整个HTML(网站也很好)。
可能是什么原因,卷曲不能获得完整的html源代码?
答案 0 :(得分:3)
也许此网站会阻止他人抓取他们的内容。我建议您在请求标头中添加User-Agent
以模拟Web浏览器。
curl_setopt($ch,CURLOPT_HTTPHEADER,array('User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:19.0) Gecko/20100101 Firefox/19.0'));
答案 1 :(得分:0)
网站可能会重定向您。添加此选项:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
这将使curl跟随重定向。