我创建了一个脚本来提取某个个人资料…库中的照片使用instagram-web-api
不幸的是,它现在不再工作了,instagram不能返回媒体的图像这是错误的: ERR_BLOCKED_BY_RESPONSE
Instagram最近改变了它的CORS政策?我该怎么解决呢?
发布于 2021-04-28 11:41:19
最近在https://github.com/restyler/instagram-php-scraper上也报告了同样的问题。
Instagram现在可以设置cross-origin-resource-policy: same-origin,如果它不喜欢你的浏览器在加载图片时发送到cdninstagram域的"referer“。
缓解这种情况的方法之一可能是创建一个简单的图像代理,它将在您的域上工作,从instagram服务器下载图像到您的服务器,然后将其输出到浏览器。
以下是CloudFlare镜像代理的示例:
https://gist.github.com/restyler/6c51e3ad20d7596e799d76e87cf93236
效率不是很高,但可以是自托管的PHP实现:
https://github.com/restyler/inwidget-proxified/blob/master/imgproxy.php
在代理上添加额外的缓存层可能是一个好主意,以减少对instagram cdn服务器的重复图像请求量。
当您的镜像代理运行时,您只需将所有instagram镜像srcs替换为代理版本。
发布于 2021-05-03 18:20:18
对于php,我把我的img src改成了这个,它的效果很不错!假设$image是来自instagram页面的instagram图片cdn链接:
'data:image/jpg;base64,'.base64_encode(file_get_contents($image))发布于 2022-01-07 00:39:20
https://stackoverflow.com/questions/67279678
复制相似问题