Http请求文件头

时间:2015-01-10 19:41:14

标签: javascript html node.js http document

我需要获得文档标题。

所以我尝试发送请求,然后通过paser响应html获取标题。

示例(通过nodejs模块request):

request.get("http://www.google.com", function(err, res, body) {
  var title = body.match(/<title>(.*?)</title>/g)[1];
})

但是当文件特别大时。请求很慢。

有没有办法快速获得文档标题?请建议。感谢。

1 个答案:

答案 0 :(得分:1)

请求可以在收到解压缩数据时为您提供:http://github.com/request/request#examples(第二个示例)

您可以继续将收到的数据附加到缓冲区中,并检查它是否还有您想要的内容(&#34; </title>&#34;)。一旦得到它,您就可以获得标题并忽略流中的其余缓冲区。

var request = require('request');
var buffer = '';
var flag = 0;
request({
        method: 'GET',
        uri: 'http://www.google.com',
        gzip: true
    }).on('data', function(data) {
        if (buffer.indexOf('</title>') == -1)
            buffer += data;
        else done();
    });
function done() {
    if (flag) return;
    flag++;
    var title = buffer.match(/<title>(.*?)<\/title>/)[1];
    console.log(title);
}