29

簡単な Web ページを解析し、「src」、「data-attr」などの html からデータを取得する必要があります。Node.js を使用してこれを最も効率的に行うにはどうすればよいですか? 役立つ場合は、Node.js 0.8.x を使用しています。

PSこれは私が解析しているサイトです。現在のトラックのリストを取得し、モバイル デバイスで聴くための独自の html5 アプリを作成したいと考えています。

4

4 に答える 4

59

私はこれをたくさんしました。スクレイピングしている Web サイトが JavaScript を多用している場合は、PhantomJSを使用することをお勧めします。PhantomJS は Node.js ではないことに注意してください。これはまったく異なる JavaScript ランタイムです。phantomjs-nodeまたはnode-phantomを介して統合できますが、どちらもちょっとハックです。それらとYMMV。jsdom との関係は避けてください。頭痛の種になります - これにはZombie.jsが含まれます。

使用する必要があるのは、 Requestと組み合わせたCheerioです。ほとんどの Web ページではこれで十分です。

Cheerio with Request: Quick and Dirty Screen Scraping with Node.jsの使用に関するブログ記事を書きましたが、JavaScript を多用する場合は、PhantomJS を CasperJS と組み合わせて使用​​してください

お役に立てれば。

Request と Cheerio を使用したスニペット:

var request = require('request')
  , cheerio = require('cheerio');

var searchTerm = 'screen+scraping';
var url = 'http://www.bing.com/search?q=' + searchTerm;

request(url, function(err, resp, body){
  $ = cheerio.load(body);
  links = $('.sb_tlst h3 a'); //use your CSS selector here
  $(links).each(function(i, link){
    console.log($(link).text() + ':\n  ' + $(link).attr('href'));
  });
});
于 2012-09-14T18:30:22.100 に答える
4

PhantomJSを試すことができます。これをスクリーン スクレイピングに使用するためのドキュメントを次に示します。

于 2012-09-13T10:41:35.900 に答える
0

ファントムを使用する場合は、node-phantom を使用してください。見たい場合は、それらを一緒に使用してhtmlからpdfファイルを生成するgitハブリポジトリがあります。しかし、私はファントムには行きません。なぜなら、それはあなたが通常望む以上のことをし、チェリオはより速いからです。

于 2014-06-15T03:23:25.570 に答える