PHP从Google Books API获取封面图片

时间:2014-10-25 07:34:47

标签: php image file-get-contents cover google-books

我试图通过缩略图从Google图书服务中获取图片。通过file_get_contents读取php中的地址获取本书的所有网页,而我只是想获得封面图片。我知道它可以通过html img元素的src标签完成,但我需要图像服务器端。有办法吗?感谢

这里使用的代码:

$context = [
    'http' => [
        'method'=>"GET",
        'header' => "Accept:image/png\r\nAccept-Language:it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3\r\nCache-Control:max-age=0\r\nConnection:  keep-alive\r\nUser-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0\r\n"
     ]
];
$context = stream_context_create($context);
$result = @file_get_contents($bookThumbnail, false, $context);

2 个答案:

答案 0 :(得分:0)

你的意思是刮它?如果你这样做,可能是法律问题......

但是看看他们的网站(只有一个结果),图片就在html的这一部分中:

<div class="bookcover"><a href="http://books.google.com/books?id=btIQAAAAYAAJ&amp;printsec=frontcover&amp;source=gbs_ge_summary_r&amp;cad=0" ><img src="http://bks0.books.google.com/books?id=btIQAAAAYAAJ&printsec=frontcover&img=1&zoom=1&edge=curl&imgtk=AFLRE70zzwoUCkgdipXt2aghe0i9TUKTDTH4s71IXTEPNlUNi9dN-aiJDCtxor4tL3yqq8KrHzEiHTyysqSFu2vH2QNm3JNCjyjm3f-B_N2VKYZqrcaqHfUXDdOea2f3FBR3nFIUxtk7" alt="Front Cover" title="Front Cover" width=128 border=1 id=summary-frontcover ></a></div>

使用http://php.net/manual/en/class.domxpath.php之类的东西来提取它。应该很直接。您可能不希望仅对图像使用file_get_contents(),但使用curl或其他东西。

答案 1 :(得分:0)

听起来像你想要这样的东西

$dat = file_get_contents('https://www.googleapis.com/books/v1/volumes/H1w9AwAAQBAJ');

$arr = json_decode($dat,1);

$info = $arr['volumeInfo'];

$imagedata = file_get_contents($info['imageLinks']['thumbnail']);

file_put_contents('/images/thumb.jpg', $imagedata);

// just to see it 
$img = imagecreatefromstring($imagedata);
header('Content-Type: image/jpg');
imagejpeg($img);
imagedestroy($img);