我试图通过缩略图从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);
答案 0 :(得分:0)
你的意思是刮它?如果你这样做,可能是法律问题......
但是看看他们的网站(只有一个结果),图片就在html的这一部分中:
<div class="bookcover"><a href="http://books.google.com/books?id=btIQAAAAYAAJ&printsec=frontcover&source=gbs_ge_summary_r&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);