node爬虫代码优化?

发布于 2022-09-02 10:04:36 字数 1751 浏览 13 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

岁月苍老的讽刺 2022-09-09 10:04:36

require('superagent'),说明你知道用类库来完成,底下的http.request就可以不写了。
require('eventproxy')require('async')说明你是想搞流程控制的。

你问怎么优化,其实你已经有那个意识了,剩下的只是照着api文档调整一下就好。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文