2

ノードから、外部 Web ページからすべての画像 URL (タグのsrc属性)を取得したいと考えています。img

私はphantonjsを検討することから始めましたが、実際にはノードに統合されていない(つまり、外部プロセスで実行される)のが好きではありませんでした。

次にrequestモジュールとcheerioを使ってみました。相対画像 URL を処理する必要があることを除いて、これはうまく機能します。例えば

<img src='http//example.com/i.jpg'>
<img src='/i.jpg'>
<img src='i.jpg'>
<img src='../images/i.jpg'>

私はそれで対処できますが、もっと簡単な方法はありますか?

4

1 に答える 1

8

node モジュールをand とrequest一緒に使用することになりました。これが私がやったことです(これはmvpコードであり、製品品質ではないことに注意してください):cheeriourl

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);
        }
      }));
    }
  });
});
于 2013-06-07T14:09:42.397 に答える