3 回答
TA贡献1805条经验 获得超10个赞
我今天玩了一下刮刀,它似乎不支持图像抓取。最好是您可以联系他们的客户支持并找出答案。
@Towsif是正确的,您尝试获取页面,而不是实际图像。我很快就把一些东西放在一起,试试看这是否适合你。
$queryString = http_build_query([
'access_key' => 'replace this with your own token',
'url' => 'https://i.imgur.com/Cbiu8Ef.png',
]);
$ch = curl_init(sprintf('%s?%s', 'http://api.scrapestack.com/scrape', $queryString));
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
$image_source = curl_exec( $ch );
curl_close( $ch );
file_put_contents( 'Cbiu8Ef.png' , $image_source );
TA贡献1851条经验 获得超5个赞
看起来您得到的响应是损坏的PNG图像。
如果您使用的是5.1.3之前版本的PHP,则需要为二进制数据传输指定一个附加选项,例如图像:
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
如果上述选项不能解决问题,您可以尝试设置
curl_setopt($ch, CURLOPT_HTTP_CONTENT_DECODING, false);
如果响应的标头设置错误,则让 curl 对原始输出执行不需要的解码。Content-Type
TA贡献1906条经验 获得超10个赞
你的问题是这个网址。
$image ="http://api.scrapestack.com/scrape?access_key=TOKEN-HERE&url=https://imgur.com/a/E5ehGuv";
如果您转到此网址
您将看到图像页面,但看不到图像路径。 函数在这里不起作用并引发错误。pathinfo()
如果您右键单击该图像并在新选项卡中打开图像,您将看到图像路径,在这种情况下,即
https://i.imgur.com/Cbiu8Ef.png
所以你可以试试这个网址
$image ="http://api.scrapestack.com/scrape?access_key=TOKEN-HERE&url=https://i.imgur.com/Cbiu8Ef.png";
- 3 回答
- 0 关注
- 162 浏览
添加回答
举报
