我创建了一个脚本,可以在某个个人资料的图库中提取照片……使用 instagram-web-api
不幸的是现在它不再有效,instagram 不返回媒体图像这是错误:ERR_BLOCKED_BY_RESPONSE
Instagram 最近改变了它的 CORS 政策?我该如何解决?
最近在https://github.com/restyler/instagram-php-scraper上报告了同样的问题 。
Instagram 现在会设置cross-origin-resource-policy: same-origin
它是否不喜欢您的浏览器在加载图像时发送到 cdninstagram 域的“引用者”。
缓解这种情况的一种方法可能是创建一个简单的图像代理,它可以在您的域上工作,将图像从 instagram 服务器下载到您的服务器,然后将其输出到浏览器。
https://gist.github.com/restyler/6c51e3ad20d7596e799d76e87cf93236
https://github.com/restyler/inwidget-proxified/blob/master/imgproxy.php
在代理上添加额外的缓存层以减少对 instagram cdn 服务器的重复图像请求量可能是个好主意。
当您运行图像代理时,您只需要将所有 instagram 图像源替换为代理版本。
小智 8
为 php; 我将我的 img src 更改为这个,它就像魅力一样!假设 $image 是来自 instagram 页面的 instagram 图片 cdn 链接:
'data:image/jpg;base64,'.base64_encode(file_get_contents($image))
Run Code Online (Sandbox Code Playgroud)
小智 2
我有同样的问题,当我尝试加载 Instagram 的图片 url(我尝试使用 3 个 IP 地址)时,我在控制台上看到以下内容:
无法加载资源:net::ERR_BLOCKED_BY_RESPONSE
你可以在这里看到,Instagram 图像没有加载(实际上,当我在谷歌上粘贴这个网址时,它可以工作,但 Instagram 会在这些图片上添加时间戳,所以,它可能不适合你)。
这是最近的,三天前,它可以正常工作。
<img src="https://scontent-cdt1-1.cdninstagram.com/v/t51.2885-19/s320x320/176283370_363930668352575_6367243109377325650_n.jpg?tp=1&_nc_ht=scontent-cdt1-1.cdninstagram.com&_nc_ohc=nC7FG1NNChYAX8wSL7_&edm=ABfd0MgBAAAA&ccb=7-4&oh=696d56547f87894c64f26613c9e44369&oe=60AF5A34&_nc_sid=7bff83">
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7320 次 |
最近记录: |