Ответ 1
Я сделал это много. Вы хотите использовать PhantomJS, если веб-сайт, который вы очищаете, сильно использует JavaScript. Обратите внимание, что PhantomJS не Node.js. Это совершенно другое время выполнения JavaScript. Вы можете интегрировать через phantomjs-node или node-phantom, но они оба являются просто хаки. YMMV с этими. Избегайте каких-либо действий с jsdom. Это вызовет у вас головные боли - сюда входит Zombie.js.
То, что вы должны использовать, - это Cheerio в сочетании с Request. Этого будет достаточно для большинства веб-страниц.
Я написал сообщение в блоге об использовании Cheerio с запросом: быстрый и грязный скрипинг экрана с помощью Node.js. Но опять же, если он интенсивный JavaScript, используйте PhantomJS совместно с CasperJS.
Надеюсь это поможет.
Фрагмент с использованием запроса и 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'));
});
});