我在 Windows 的“我的音乐”文件夹中的子文件夹中整理了很多音乐专辑,为它们查找专辑封面既费时又麻烦。我以前在我的浏览器中使用过这个小的 PHP 脚本来循环并使用子文件夹的名称进行 Google Image 查找。
$folders = glob('*');
foreach($folders as $folder) {
if(!is_dir($folder)) {
echo "Skipping {$folder}<br>";
continue;
}
$searchname = str_replace('_',' ',$folder);
ob_flush();
echo "<b>Checking {$searchname}...</b><br>";
flush();
$googleUrl = "https://www.google.com/search?safe=off&tbm=isch&source=lnt&tbs=isz:l&q=".urlencode($searchname);
$contents = file_get_contents($googleUrl);
$doc = new DOMDocument();
$doc->loadHTML($contents);
$tags = $doc->getElementsByTagName('a');
foreach ($tags as $tag) {
$counter;
$tag = $tag->getAttribute('href');
$tag = parse_url($tag);
$tag = $tag['query'];
if ((strpos($tag, "imgurl") !== false) && ($counter < 5)) {
$counter++;
preg_match('~=(.*?)&imgrefurl~', $tag, $output);
$tag = $output[1];
$image = file_get_contents($tag);
echo "Downloading image" . $counter . ".jpg<br>";
file_put_contents("{$folder}/image" . $counter .".jpg", $image);
}
}
$counter = 0;
}
如果我执行 var_dump($contents),我可以在解析后看到 Google 图像 DOM,但在使用 Chrome 的开发工具检查时,它不再包含任何 img src 链接。现在,它在视觉上与 Google 图片的当前外观大不相同。
这仅在几个月前完成了这项工作,但现在回到它,有些事情发生了,也许是因为谷歌的事情发生了变化。
我对编码很陌生,因此感谢任何修复/评论/替代方法以使其再次正常工作。