php利用wget远程抓取数据 https 豆瓣图片

很多时候需要从目标网站抓取一些数据回来,就php而言比较常用的抓取方法有file_get_contents、curl、fopen和fsockopen。
但有一些网站为了防止别人抓取想尽了办法来限制别人抓取,上述4种方法有的是使你的请求超时,有的是直接给你一个错误的信息。
近日在采集豆瓣时就无法获取图片,所以我们这里使用wget来获取文件。
如果你的服务器或主机是liunx系统(需要开启system函数),还可以使用下面这个方法获取数据。liunx系统在shell脚本中下载用的最多的是wget命令,利用wget命令可避免受到服务器的限制,还可以做一些远程图片的抓取。

/**
  * 用shell获取远程文件
  *
  * $url    string  文件或网页地址
  * $dir    string  文件存放地址 默认是/tmp/
  */
 function getFileByWget($url, $dir='/tmp/') {
    if(empty($url)) {
        return null;
    }
    $file_name = $dir.md5(time().rand());
    $commod = "wget -q {$url} -O {$file_name}";
    system($commod);
    return ;
}
getFileByWget('http://laoji.org/','./'); //使用方法

 

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注