2013-03-11 16 views
8

isteğinizi hemen şimdi bizim app nodejs.org'un kaynak kodunu konsola yazar. Bunun yerine nodejs.org'un tüm hiperlinklerini yazmak isteriz. Belki de body arasındaki bağlantıları almak için sadece bir kod satırına ihtiyacımız var.node.js kullanarak tüm köprüler (harici web sitesinden) ayıklayın ve

app.js: Muhtemelen jsdom, jquery veya cheerio ya arıyoruz

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); 
}); 

cevap

35

. Ne yapıyorsunuz ekran kazıma, bir siteden veri ayıklama denir. jsdom/jquery araçların komple setini sunuyor ancak cheerio çok daha hızlı. Sizin için en iyisi neyse seçim

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')); 
    }); 
}); 

: Burada

bir güle örneğidir.

+5

adınızı değiştirmenizi öneririz: high_speed_answer_right_man :) –

+2

Teşekkürler belki de yapacağım. Ben sadece 2000 rep geçti;) – user568109

+0

document.links sonuçları cheerio kullanarak almak için zaten var mı? – yeya

İlgili konular