如何抓取这个特定的网址?

时间:2014-12-31 00:53:46

标签: php image curl

以下代码(从Save image from url with curl PHP学习)在尝试从互联网上抓取图片时效果很好。但是当来到下面的网址时,我只得到了一个" test.jpg"这实际上是一个404错误页面(" test.jpg"可以通过记事本打开)。 PS:我可以用浏览器打开网址,可以看到图像。感谢Mike,问题已解决并且代码已更新。

$url = 'https://spthumbnails.5min.com/10368406/518420256_c_570_411.jpg';
$reffer="http://www.sohu.com";
$user_agent="Baiduspider+(+http://www.baidu.com/search/spider.htm)";
$saveto="test.jpg";
grab_image($url,$saveto);

function grab_image($url,$saveto,$reffer,$user_agent){
    $ch = curl_init ($url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
    curl_setopt($ch,CURLOPT_REFERER,$reffer);
    curl_setopt($ch,CURLOPT_USERAGENT,$user_agent);
    $raw=curl_exec($ch);
    curl_close ($ch);
    $fp = fopen($saveto,'w');
    fwrite($fp, $raw);
    fclose($fp);
}

1 个答案:

答案 0 :(得分:0)

感谢迈克。这个站点确实需要“CURLOPT_REFERER”选项(我忽略了它)来绘制图像。我还添加了useragent选项,以确保它适用于其他情况。