21

現在、アプリは nodejs.org のソース コードをコンソールに書き込みます。代わりに、nodejs.org のすべてのハイパーリンクを書き込みたいと考えています。からリンクを取得するのに必要なコードは 1 行だけbodyです。

app.js:

var http = require('http');

http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

var request = require("request");



request("http://nodejs.org/", function (error, response, body) {
    if (!error)
        console.log(body);
    else
        console.log(error);
});
4

2 に答える 2

65

おそらくjsdomjquery、またはCheerioのいずれかを探しているでしょう。あなたがしていることは、スクリーン スクレイピングと呼ばれ、サイトからデータを抽出します。jsdom/jquery は完全なツール セットを提供しますが、cheerio の方がはるかに高速です。

これがチェリオの例です:

var request = require('request');
var 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 = $('a'); //jquery get all hyperlinks
  $(links).each(function(i, link){
    console.log($(link).text() + ':\n  ' + $(link).attr('href'));
  });
});

あなたはあなたにとって最善のものを選びます。

于 2013-03-11T17:08:23.733 に答える