亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

node.js - node async寫的爬蟲小程序請求高手指導

瀏覽:160日期:2024-08-03 18:32:21

問題描述

var cnodeUrl = 'https://segmentfault.com/';// 存放所有主題鏈接鏈接var topicUrls = [];/** * 所有的url請求完成后,ep控制異步結束,進入每一個主題 */ep.after(’topic_html’, topicUrls.length, function(topics) { var concurrencyCount = 0; // 記錄并發數 /** * 進入主題,取得題目 * @callback topics [{title:’’}] */ var fetchUrl = function(myurl, callback) {var fetchStart = new Date().getTime();concurrencyCount++;console.log(’現在的并發數是’, concurrencyCount, ’,正在抓取的是’, myurl);superagent.get(myurl).end(function(err, ssres) { if (err) {callback(err, myurl + ’ error happened!’); } var time = new Date().getTime() - fetchStart; console.log(’抓取 ’ + myurl + ’ 成功’, ’,耗時’ + time + ’毫秒’); concurrencyCount--; var $ = cheerio.load(ssres.text); var reslut = {title: $(’.question__author>a>strong’).text(),answer: $(’#answers-title’).text() }; callback(null, result);}) } // 控制最大并發數為5,在結果中取出callback返回來的整個結果數組。 async.mapLimit(topicUrls, 5, function (myurl, callback) {fetchUrl(myurl, callback); }, function (err, result) {console.log(’===== result: ======n’, result);//res.send(result); });})// 獲得所有主題鏈接 topicUrlssuperagent.get(cnodeUrl).end(function(err, sres) { if(err) {return next(err); } var $ = cheerio.load(sres.text); $(’.stream-list’).each(function(idx, element) {var $element = $(element).find(’.title>a’);var href = url.resolve(cnodeUrl, $element.attr(’href’));topicUrls.push(href); }) console.log(’get authorUrls successful!n’, topicUrls); ep.emit(’topic_html’, ’get topicUrls successful’);})

得到的結果是:

node.js - node async寫的爬蟲小程序請求高手指導

請教一下哪里出了問題?

問題解答

回答1:

重寫了下:

var async = require(’async’);var cheerio = require(’cheerio’);var superagent = require(’superagent’);var url = require(’url’);var cnodeUrl = 'https://segmentfault.com/';// 存放所有主題鏈接鏈接var topicUrls = [];// 獲得所有主題鏈接 topicUrlssuperagent.get(cnodeUrl).end(function(err, sres) { if(err) {return next(err); } var $ = cheerio.load(sres.text); $(’.stream-list__item’).each(function(idx, element) {var $element = $(element).find(’.title>a’);var href = url.resolve(cnodeUrl, $element.attr(’href’));topicUrls.push(href); }) // 控制最大并發數為5,在結果中取出callback返回來的整個結果數組。 async.mapLimit(topicUrls, 5, function (myurl, callback) {fetchUrl(myurl, callback); }, function (err, result) {console.log(’===== result: ======’, result); });})function fetchUrl(myurl,callback) { var fetchStart = new Date().getTime(); superagent.get(myurl).end(function(err, ssres) {if (err) { callback(err, myurl + ’ error happened!’);}var time = new Date().getTime() - fetchStart;console.log(’抓取 ’ + myurl + ’ 成功’, ’,耗時’ + time + ’毫秒’);// concurrencyCount--;var $ = cheerio.load(ssres.text);var reslut = { title: $(’.question__author>a>strong’).text(), answer: $(’#answers-title’).text()};callback(null, reslut); })}

你上面的代碼,我感覺你是參考

https://github.com/alsotang/node-lessons/blob/master/lesson4/app.js

這個課程寫的吧,應該是你用的eventproxy方式不正確

相關文章:
主站蜘蛛池模板: 日本无卡码免费一区二区三区 | 日韩一级特黄毛片在线看 | 精品国产看高清国产毛片 | 日韩欧美在线精品 | 免费国产成人高清在线观看不卡 | 国产午夜亚洲精品理论片不卡 | 久久精品视频播放 | 日产毛片 | 欧美videos另类齐全 | 性欧美巨大 | 亚洲网站免费观看 | 国产成人禁片免费观看 | 久久久久久免费观看 | 国产成人资源 | 国产三级国产精品 | 一级做a爱久久久久久久 | 手机免费看毛片 | 看全色黄大色黄大片毛片 | 国产精品久久久久久一区二区 | 色婷婷国产精品欧美毛片 | 美女视频免费黄 | 日韩在线手机看片免费看 | 日本一区二区三区免费视频 | 草草视频免费在线观看 | 亚洲欧美日韩成人一区在线 | 成人免费真人毛片视频 | 亚洲精品成人av在线 | 99久久精品免费看国产免费 | 亚洲自偷 | 国内视频一区二区 | 日本韩经典三级在线播放 | 国产欧美在线观看不卡 | 写真片福利视频在线播放 | 另类亚洲视频 | 手机在线观看精品国产片 | 国产资源在线免费观看 | 特黄视频 | 伊人久热这里只有精品视频99 | 蕾丝视频永久在线入口香蕉 | 国内真实愉拍系列情侣自拍 | 亚洲日韩aⅴ在线视频 |