没错,我就是那个倒霉蛋。前两天爬取一个小说网站的数据的时候被封了ip了,我也是醉了,我明明还没有开始大规模的爬取啊。让我先组织一下问题先。 贴一段代码先把。 var http = require(‘http’); var url = ‘http://www.biquku.com/xiaoshuodaquan/’; var StoryCategory = require(’…/models/storyCategory’); var cheerio = require(‘cheerio’); var iconv = require(‘iconv-lite’) var fs = require(‘fs’); exports.crawlerAll = function(){ http.get(url, function(res){ var html = ‘’; res.on(‘data’, function(data){ html += iconv.decode(data, ‘GBK’) }) res.on(‘end’,function(){ var storiesMessage = crawlerChapter(html); printInfo(storiesMessage); }) }).on(‘error’, function(){ console.log(‘爬取页面错误’); }); } function crawlerChapter(html){ var $ = cheerio.load(html); var stories = $(’.novellist’); var data = []; stories.map(function(i,el){ var player = $(this); var categoryname = player.find(‘h2’).text().trim(); var categories = player.find(‘ul li’); categories.map(function(j,el){ var li = $(this); var storyname = li.find(‘a’).text().trim(); var _author = li.text().trim(); var author = _author.split(’/’)[1]; var link = li.find(‘a’).attr(‘href’).trim(); var number = link.subString(22,23); var storyData = { number : i, categoryname : categoryname, storyname : storyname, author : author, link : link }; data.push(storyData); }); }); return data; } function printInfo(data){ data.forEach(function(story){ var _story = new StoryCategory(story) _story.save(function(err,story){ if(err){ console.log(err); } }) }) console.log(‘ok’); } 就是这么一个爬小说的代码。没用代理,因为我不知道怎么用,所以被封了。 以下是我目前遇到的问题,希望有大手子帮帮我。 1.很明显我是被biquku.com封了ip了。如果我不换一个方法的话,明显也会被xxx.com或者hhh.com给封的,可是怎么办呢。 2.爬小说最重要的是更新,按照我的想法是基本上所有未完本的小说都再爬一次更新一次,这不就又有问题了。 3.救命啊 !!!
↧