CNode

superagent返回null

问答
CCarlosRen发布于11 年前最后回复11 年前16 回复6234 浏览0 收藏

untitled1.png

var request = require('superagent')
 request
	.get("http://10.6.10.104:19000/workspace/index.jsp")
	.redirects(0)
	.end(function(result){
		console.log(result); // 为什么是null
	});
	

我做错了什么?or系统约束了什么?

查看回复

回复 (16)

L
lishinko#1·11 年前

试试看带err的,

    .end(function(err, result){
	    console.log(result);
    }

看看有没有什么问题?

C
CarlosRen#2·11 年前
引用 lishinko试试看带err的, 看看有没有什么问题?

@lishinko = = 原来如此。。。多谢。。。 我还说呢。。。.

  var http = require("http");
		  http.get("http://10.6.10.104:19000", function(res) {
			  console.log("Got response: " + res.statusCode);
		  });
		  

输出的很开心啊

可是为什么啊?

网址换成百度的就可以愉快的输出

L
lishinko#3·11 年前

好吧。你的彩色代码是怎么输出的? 其实我刚刚入门nodejs.只是正好碰到这个我前几天在研究的问题.

K
klesh#4·11 年前

虽然没有用过 superagent ,但像这种 callback 第一个参数为 err 基本上是一种通用约定。况且 superagent 的文档上也有说明。 至于 http.get ,这里也有说明 :http://nodejs.cn/api/http.html#http_http_get_options_callback 这里的编辑器是采用 markdown 语法的,只要标记为 code block 的块就有语法着色, 方法是在前后各加三个反引号(esc键下面)就可以了,编辑器左边倒数第二个 i 字有圆圈的那个按钮,点一下就可以看到 md 语法的介绍

C
CarlosRen#5·11 年前
引用 lishinko好吧。你的彩色代码是怎么输出的? 其实我刚刚入门nodejs.只是正好碰到这个我前几天在研究的问题.

@lishinko

	Got response: 200

而且

 request
	.post("www.baidu.com").get(function(result){
		console.log(result)
	})
	//并不会是null
C
CarlosRen#6·11 年前
C
ChrisFuck#7·11 年前

延伸一个问题啊,如果是爬取动态的页面的,就是页面还没绘制完成,你就获取 body 肯定是"",怎么等待

K
klesh#8·11 年前
引用 lishinko好吧。你的彩色代码是怎么输出的? 其实我刚刚入门nodejs.只是正好碰到这个我前几天在研究的问题.

@CarlosRen sorry, markdown 是跟 lishinko 说的。 @lishinko 这里的编辑器是采用 markdown 语法的,只要标记为 code block 的块就有语法着色, 方法是在前后各加三个反引号(esc键下面)就可以了,编辑器左边倒数第二个 i 字有圆圈的那个按钮,点一下就可以看到 md 语法的介绍

K
klesh#9·11 年前
引用 ChrisFuck延伸一个问题啊,如果是爬取动态的页面的,就是页面还没绘制完成,你就获取 body 肯定是"",怎么等待

@ChrisFuck superagent, http 都不支持获取动态内容。你要看下 nightmare 和 phantom 了

C
ChrisFuck#11·11 年前
引用 klesh@ChrisFuck superagent, http 都不支持获取动态内容。你要看下 nightmare 和 phantom 了

@klesh 我用request爬的时候返回乱码,返回的body怎么转UFT-8

K
klesh#12·11 年前

如果用 nightmare / phantom 之类的话,编码就没有问题了。 转换编码的话,已经在 https://cnodejs.org/topic/545de1e1a68535a174fe51b5#5658445c05e5f19802a61da9 这里回复了。

C
CarlosRen#13·11 年前
引用 klesh@ChrisFuck superagent, http 都不支持获取动态内容。你要看下 nightmare 和 phantom 了

@klesh phantom安装完成之后,一直提示require('...').create is not a function ,遇到过吗?我是windows环境,cmd里phantomjs可以正常执行

C
CarlosRen#14·11 年前
引用 klesh如果用 nightmare / phantom 之类的话,编码就没有问题了。 转换编码的话,已经在 https://cnodejs.org/topic/545de1e1a68535a174fe...

@klesh sorry,搞定了。。

//不需要webpage 这样就可以了
var phantom = require('phantom');

function capture(){
  var phantom = require('phantom');
  phantom.create(function (ph) {
    ph.createPage(function (page) {
      page.open('https://www.baidu.com', function () {
          console.log(new Date());
          page.render('example.png');
          ph.exit();
      });
    });
  }, {
    dnodeOpts: {
      weak: false
    }
  });
}

exports.ScreenCapture = capture;
K
klesh#15·11 年前

解决了就好,但是 phantom 怎么要 var 2次?

C
CarlosRen#16·11 年前
参与回复
登录后即可参与回复。登录