我目前正在使用CasperJS(在无头浏览器PhantomJS之上)进行网站抓取,我想从网站下载图片。
有两种方法,这两种方法都有详细记录,但它们都不适合我的目的。
我可以使用casper.capture()
截取部分网站的屏幕截图,但图片前面显示的HTML元素会遮挡图片,因此不能选择 - 我需要原创图像来源。
当然,总有casper.download()
,它确实有效,但只有当我使用--web-security=no
运行casperjs时才会有效,这会带来安全风险,考虑到我在抓一个网站那不是我自己的。
casper.on("resource.received", fuction(resource){})
似乎也不适合我的需求,因为它只给我图像元数据,而不是图像本身。
我尝试按照here的说明使用缓存系统,但这对我没有用。每当我尝试访问cache.cachedResources[index].getContents()
时,我的casperjs由于未知原因而崩溃。使用代理也不是一个可行的解决方案。
如果有人知道在不禁用网络安全的情况下下载原始图片的方法,那将是非常感激的。请记住,我不一定需要将其保存到文件中,如果我可以访问CasperJS中的字节内容,那么这也很好。
谢谢!