【发布时间】:2017-05-15 06:53:59
【问题描述】:
我使用 Node.js 编写了一个简单的网络抓取工具的代码,并编写了一个在线教程来收集 BuzzFeed 测验的信息。它适用于主页(https://www.buzzfeed.com/quizzes)但当我尝试在任何其他页面(即https://www.buzzfeed.com/quizzes?page=4)上使用它时,我没有得到任何结果。我不确定有什么问题?这是我的代码:
var request = require('request');
var cheerio = require('cheerio');
var fs = require('fs');
var options = {
method: 'GET',
uri: 'https://www.buzzfeed.com/quizzes',
qs: {
page: 4
}
}
request(options, function(error, response, html) {
if(!error && response.statusCode == 200) {
var $ = cheerio.load(html);
$('div.card.js-feed-item').each(function( index ) {
var title = $(this).find('h2').text().trim();
var link = $(this).find('a.link-gray').attr('href');
var image = $(this).find('a.link-gray > div.js-progressive-image').attr('data-background-src');
fs.appendFileSync('buzzfeed.txt', title + '\n' + link + '\n' + image + '\n\n');
});
}});
基本上,如果我注释掉这个:
qs: {
page: 4
}
它工作正常。我是不是用错了qs?
【问题讨论】:
标签: javascript jquery node.js web-scraping httprequest