CNode

用 Node 做爬虫时有带 cookie 的请求怎么破?

问答
Hhanzichi发布于11 年前最后回复11 年前4 回复12056 浏览0 收藏

简单的说,就想请求一个 qq 好友空间的页面,获取空间 title,代码如下:

var cheerio = require('cheerio');
var superagent = require('superagent');

superagent
  .get('http://user.qzone.qq.com/xxx')
  .set('Cookie', 'xxx')
  .end(function (err, sres) { // callback
    // 常规的错误处理
    if (err) {
      console.error(err);
    }

    var $ = cheerio.load(sres.text);
    var ans = $('#top_head_title').text();
    console.log(ans);
  });
  
  

其中,第一个 xxx 是好友 qq 号,第二个 xxx 是我访问好友空间页面时,chrome Network 面板下 Doc 文件获取时的 cookie,但是 node 下并没有输出,不知道是哪里姿势不对,恳请指导下,谢谢大家!

查看回复

回复 (4)

A
alsotang#1·11 年前

对 superagent 封装一下,每次都自动把新 cookie 取出,再下一次请求的时候 set 进去。 我搜了搜 superagent 和 request,都没有找到很便利的方式做这事。我印象中有的,引入一个 cookiejar 之类的库就好了。

K
klesh#4·11 年前

request 可以指定 jar ,https://www.npmjs.com/package/request 拉到最下,有代码演示 cookie jar 的使用

参与回复
登录后即可参与回复。登录