http请求文件头
Http request document head
我需要获取文档标题。
所以我尝试发送请求,然后发送响应 html 以获得标题。
示例(通过 nodejs 模块 request
):
request.get("http://www.google.com", function(err, res, body) {
var title = body.match(/<title>(.*?)</title>/g)[1];
})
但是当文档特别大的时候。请求很慢。
有没有快速获取文档标题的方法?请建议。谢谢
请求可以为您提供收到的解压缩数据流:http://github.com/request/request#examples(第二个示例)
您可以继续将接收到的数据追加到缓冲区中,并检查它是否有您想要的内容 ("</title>
")。一旦你得到它,你就可以得到你的标题并忽略流中缓冲区的其余部分。
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);
}
我需要获取文档标题。
所以我尝试发送请求,然后发送响应 html 以获得标题。
示例(通过 nodejs 模块 request
):
request.get("http://www.google.com", function(err, res, body) {
var title = body.match(/<title>(.*?)</title>/g)[1];
})
但是当文档特别大的时候。请求很慢。
有没有快速获取文档标题的方法?请建议。谢谢
请求可以为您提供收到的解压缩数据流:http://github.com/request/request#examples(第二个示例)
您可以继续将接收到的数据追加到缓冲区中,并检查它是否有您想要的内容 ("</title>
")。一旦你得到它,你就可以得到你的标题并忽略流中缓冲区的其余部分。
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);
}