我需要一个图像采集器。我的意思是像Digg一样的图像采集器,可以搜索其他页面(包括youtube,普通网站,经济学家......等等),获得大小合适的图像,如果我选择它,我可以上传到我的服务器
有没有人知道这个插件?
感谢。
答案 0 :(得分:1)
我不知道任何现成的图书馆。但我曾经需要一种快速的方法来检索页面上的“主图像”。我最好的猜测是获得最大的文件大小。我使用PHP SimpleHTMLDom库轻松访问网站的<img>
代码。
现在,这是代码的主要部分,它返回给定页面的最大图像文件的URL。
希望你能在此基础上继续发展。
// Load the remote document
$html = file_get_html($url);
$largest_file_size=0;
$largest_file_url='';
// Go through all images of that page
foreach($html->find('img') as $element){
// Helper function to make absolute URLs from relative
$img_url=$this->InternetCombineUrl($url,$element->src);
// Try to get image file size info from header:
$header=array_change_key_case(get_headers($img_url, 1));
// Only continue if "200 OK" directly or after first redirect:
if($header[0]=='HTTP/1.1 200 OK' || @$header[1]=='HTTP/1.1 200 OK'){
if(!empty($header['content-length'])){
// If we were redirected, the second entry is the one.
// See http://us3.php.net/manual/en/function.filesize.php#84130
if(!empty($header['content-length'][1])){
$header['content-length']=$header['content-length'][1];
}
if($header['content-length']>$largest_file_size){
$largest_file_size=$header['content-length'];
$largest_file_url=$img_url;
}
}else{
// If no content-length-header is sent, we need to download the image to check the size
$tmp_filename=sha1($img_url);
$content = file_get_contents($img_url);
$handle = fopen(TMP.$tmp_filename, "w");
fwrite($handle, $content);
fclose($handle);
$filesize=filesize(TMP.$tmp_filename);
if($filesize>$largest_file_size){
$largest_file_size=$filesize;
$largest_file_url=$img_url;
unlink(TMP.$tmp_filename);
}
}
}
}
return $largest_file_url;