在node.js中从外部网页获取所有图像url的最佳方式是什么?
从节点,我想从外部网页获取所有图像url(来自img
标签的src
属性)。
我开始考虑phantonjs,但不喜欢它没有真正集成到节点(即它运行在外部过程中)。
接下来,我尝试使用请求模块和cheerio。 这个工程很好,除了我必须处理相关的图像url。 例如
<img src='http//example.com/i.jpg'> <img src='/i.jpg'> <img src='i.jpg'> <img src='../images/i.jpg'>
我可以处理,但我想知道是否有一个更简单的方法?
我最终使用request
节点模块以及cheerio
和url
。 这是我最终做的(请注意,这是mvp代码,而不是生产质量):
app.get('/scrape-images', function(req, res) { request(req.query.url, function (error, response, body) { if (!error && response.statusCode == 200) { var $ = cheerio.load(body); var reqUrl = url.parse(req.query.url); res.send($('img').map(function(i, e) { var srcUrl = url.parse($(e).attr('src')); if (!srcUrl.host) { return url.resolve(reqUrl, srcUrl); } else { return url.format(srcUrl); } })); } }); });