用于从Google Images下载MP3专辑封面的PHP脚本

时间:2014-01-04 02:15:10

标签: php image google-search google-image-search

我将很多音乐专辑整理到“我的音乐”中的子文件夹中。 Windows中的文件夹,为它们查找专辑封面非常耗时且繁琐。我以前在浏览器中使用这个小PHP脚本循环并使用子文件夹进行Google图像查找'名。

$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的Dev工具检查时它不再包含任何img src链接。它现在看起来与谷歌图像有很大的不同。目前的样子。

这使得这项工作在几个月前完成得很好,但现在回到现在,有些事情已经破裂,也许是因为Google的结果发生了变化。

我对编码很陌生,所以任何修复/评论/替代方案都会受到赞赏,以便再次使用。

0 个答案:

没有答案