nodejs抓取动态网页(Google和Baidu的爬虫技术是不公开的,算是商业机密了)

优采云 发布时间: 2022-02-02 03:12

  nodejs抓取动态网页(Google和Baidu的爬虫技术是不公开的,算是商业机密了)

  之前玩千里的时候,有这样一个问题,如下:谷歌、百度的两大技术:爬虫和搜索。爬虫负责爬取整个互联网的内容,搜索负责生成索引供用户检索。所以爬虫是这两家公司的看家本领。但是,谷歌和百度的爬虫技术并不公开,属于商业机密。所以,360搜索刚起步的时候,第一件事就是挖了百度核心搜索爬虫群的程序员,基本是3倍的工资。虽然没有办法知道这两家公司的爬虫技术,但是我们可以向开源项目学习。例如,Scrapy 是一个非常好的开源爬虫框架。如果你对爬虫感兴趣,

  简单来说,爬虫分为两步:

  这里有一个很简单的任务,让大家感受一下爬虫:豆瓣电影Top250收录迄今为止最喜欢的250部电影。该列表显示了每部电影的基本信息,例如评级、年份等。这个问题的简单答案是该列表中排名前 166 部电影的评分总和。例子:目前第一名《肖申克的救赎》是9.6分,第二名《这个杀手不太冷》是9.4分,第三名《阿甘正传》是9.4 分。那么前3部电影的总分是9.6+9.4+9.4=28.4。

  下面是具体的实现代码:

<p>var url = &#39;https://movie.douban.com/top250?start=&#39;;

//需要统计166部,每页25条

var superagent = require(&#39;superagent&#39;);

var cheerio = require(&#39;cheerio&#39;);

var numArr = [];

var getNext = function(path,start){

var tempPath = path+start;

superagent.get(tempPath).set({

&#39;cookie&#39;:&#39;bid=xEbtZyJpLBs; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1474114942%2C%22http%3A%2F%2Fwww.qlcoder.com%2Ftask%2F7560%22%5D; _pk_id.100001.4cf6=ebdb1fdadde80a53.1474114942.1.1474115010.1474114942.; _pk_ses.100001.4cf6=*; __utma=30149280.834196820.1474114942.1474114942.1474114942.1; __utmb=30149280.0.10.1474114942; __utmc=30149280; __utmz=30149280.1474114942.1.1.utmcsr=qlcoder.com|utmccn=(referral)|utmcmd=referral|utmcct=/task/7560; __utma=223695111.500893696.1474114942.1474114942.1474114942.1; __utmb=223695111.0.10.1474114942; __utmc=223695111; __utmz=223695111.1474114942.1.1.utmcsr=qlcoder.com|utmccn=(referral)|utmcmd=referral|utmcct=/task/7560&#39;

}).end(function(err,res){

var text = res.text;

var $ = cheerio.load(text);

var flag = false;

$(&#39;.rating_num&#39;).each(function(index,ele){

var num = $(ele).html();

num = parseFloat(num);

if(numArr.length == 166){

flag = true;

countNum ();

}

if(!flag){

numArr.push(num);

}

});

if(!flag){

getNext(path,start+25);

}

});

};

var countNum = function(){

var total = 0 ;

for(var i=0,max=numArr.length;i

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线