【已解决】nodejs豆瓣小组爬虫分析与解决。
发布于 10 年前 作者 heixiaoshan 9631 次浏览 最后一次编辑是 8 年前

豆瓣小组地址: http://www.douban.com/group/ (采用 request、http.get全部是403错误) (ALL)具体小组地址: http://www.douban.com/group/小组ID/ 例如:分页地址 http://www.douban.com/group/kaopulove/discussion?start=数字(采用 request、http.get,还是TM403错误) 该小组下的具体主题地址: http://www.douban.com/group/topic/54905582/(采用 request、http.get,吐血还是403错误)

大伙有没有相应的解决方案呢?demo 等等之类的,这TM的全是403错,这是为毛呢!! 电影的那个爬虫我看过了,测试了是可以爬的。为毛小组爬不了呢? 我也看了不少Python写的爬虫都有爬小组的。为毛nodeJS不行呢?

采用 request.get({url:‘http://www.’,headers:{‘User-Agent’: ‘request’},funaction(err,req,data){})

14 回复

那怕是取页面里的一个字符,也要下载整个页面

懂前端的人都知道,dom树没构建之前,不可能用jquery去取元素,唯一的办法就是用正则表达式

兄台,能否讲明白点呢,是指用正则表达式可以做到吗?

抓取响应方法啊 思路大概是 status==‘200’ 握手握到一半就END就行了。 .on事件。

var jsonreq = http.request(opt, function (serverFeedback) {  
  if (serverFeedback.statusCode == 200) { 
		var x='';
		serverFeedback.setEncoding('utf8');
        serverFeedback.on('data',function(data){x += data;});  
        serverFeedback.on('end',function(){req.session.json=JSON.parse(x);eval(point)});
    }  
    else {
        req.session.json='error';  
    } 
});
jsonreq.write(data);
jsonreq.end();	
}

拿这个拆吧

怎么解决的?

常规的解决,模拟用户登录 在请求头部中加东西headers:{‘User-Agent’: ‘request’} request.get({url:‘http://www.’,headers:{‘User-Agent’: ‘request’},funaction(err,req,data){})

已经解决,谢谢。

为何不直接通过API爬,这样还要处理dom多麻烦

豆瓣小组有API吗?

@nihgwu 关键在于要取小组内主题页面里面的内容。而不是小组标签,目前豆瓣有提供这个API接口?

@heixiaoshan 我只是提供了一个无关痛痒的api举个例子而已,其它的接口显然都有

@nihgwu 话说你在哪里找到的。我都没有找到。去官方看了。居然没有小组的API

回到顶部