我希望在 Angular.js 网络应用程序中构建一个功能,允许用户将 URL 粘贴到亚马逊或 Zappos 等电子商务网站,并从该页面检索主要产品图像。我的计划是将 url 发布到我的 express API 并在服务器上处理图像检索。
我最初的计划是下载原始 html,用htmlparser解析出来,用soupselect选择所有 html 图像元素并检索它们的 src 属性。理想情况下,我想实现一个可以在任何站点上工作的解决方案,而不仅仅是为特定零售商的站点硬编码值(使用特定的已知 css 类名称)。我做出的一个假设是页面上最大的图像可能是主要产品图像,根据这个逻辑,我决定尝试按文件大小对图像进行排序。我的想法是使用每个图像的 src url 发出 http 头请求,以使用 content-length 标头属性确定它们的大小。到目前为止,这种方法效果很好,但我真的很想避免发出如此多的 http 请求,即使它们只是头请求。
我觉得有更好的方法可以做到这一点,使用 PhantomJS 之类的东西来加载整个页面并以这种方式解析会更容易吗?我试图尽快完成这项工作,从而避免下载所有图像。有没有人有什么建议?