node爬虫代码优化?
var http = require('http'),
url = require('url'),
superagent = require('superagent'),
cheerio = require('cheerio'),
async = require('async'),
eventproxy = require('eventproxy');
var data = {},
urlLists = {
'hangzhou':[],
'shanghai':[]
};
var ep = new eventproxy(),
baseUrl = ['http://hz.lianjia.com', 'http://sh.lianjia.com'],
urls = ['http://hz.lianjia.com/ershoufang/', 'http://sh.lianjia.com/ershoufang/'];
var count = 0;
function start() {
var req = http.request(urls[0], function(res) {
res.setEncoding('utf-8');
res.on('data', function(chunk) {
data['hangzhou'] += chunk;
});
res.on('end', function() {
count++;
var $ = cheerio.load(data['hangzhou']);
$('#filter-options .option-list').first().children('a').each(function(index, item) {
urlLists['hangzhou'].push(baseUrl[0] + $(item).attr('href'));
});
getUrl(count)
});
});
req.end();
var req1 = http.request(urls[1], function(res) {
res.setEncoding('utf-8');
res.on('data', function(chunk) {
data['shanghai'] += chunk;
});
res.on('end', function() {
count++;
var $ = cheerio.load(data['shanghai']);
$('#filter-options .option-list').first().children('a').each(function(index, item) {
urlLists['shanghai'].push(baseUrl[1] + $(item).attr('href'));
});
getUrl(count)
});
});
req1.end();
function getUrl(count) {
if( count === 2 ) {
console.log(urlList);
}
}
}
start();
请问下面这段代码如何优化
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
require('superagent')
,说明你知道用类库来完成,底下的http.request
就可以不写了。require('eventproxy')
、require('async')
说明你是想搞流程控制的。你问怎么优化,其实你已经有那个意识了,剩下的只是照着
api
文档调整一下就好。