【发布时间】:2017-09-28 10:11:03
【问题描述】:
我目前正在尝试学习使用 node + express +cheerio 构建爬虫。 在路线中我放了这个:
[index.js]
app.get('/api/crawler/android', crawlerController.android);
调用控制器
[crawler-controller.js]
var androidCrawler = require('../crawlers/android')
module.exports.android = androidCrawler.androidget;
然后我调用爬虫(基于cheerio)
[crawler.js]
var request = require('request');
var cheerio = require('cheerio');
var androidget =request('https://www.developer-tech.com/categories/Android/', function (error, response, html){
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
var result = {result:[]};
$('article').each(function (i, element) {
var Title = $(this).find("h2").text();
var Link = $(this).find("a").attr("href");
var Image = $(this).find("img").attr("src");
var payload = {
"Title":Title,
"Link":Link,
"Image":Image
};
result['result'].push(payload);
});
console.log("aaa", result);
console.log(typeof result);
return result;
}});
module.exports = {
getAndroid: function (androidget, res) {
res.send(JSON.stringify(result));
}
}
当我通过终端直接将日志控制台登录到 crawler.js 时,它会正确返回 JSON 对象,但我认为我导出要由 app.get 调用的函数的方式是我错的地方,我无法弄清楚.
也许有人可以帮助我在我的情况下正确调用爬虫?
【问题讨论】: