我想防止加载其余的网页,只是加载-头-,在情况下,该网页是太重,我只是需要-标题-所以这是一个总的浪费。任何想法,如果这是可能的或没有?谢谢
8zzbczxx1#
最接近的方法是使用content-range request header向服务器请求特定的字节数。具体操作方法取决于您使用的HTTP API(node:http、fetch、axios等)。局限性:
content-range
node:http
fetch
axios
<head>
http://facebook.com
</head>
http://example.com
Content-Range
j91ykkif2#
另一个不那么干净的解决方案(除了Quentin的answer)是将站点“流式”到一个缓冲区,并在到达</head>时中止。问题是,最后一个块仍然可能包含不止</head>。
const https = require("https"); const options = { hostname: "stackoverflow.com", path: "/", method: "GET", }; const req = https.request(options, res => { let buf = Buffer.alloc(0); res.on("data", chunk => { buf = Buffer.concat([buf, chunk]); const headEndIndex = buf.indexOf("</head>"); if (headEndIndex !== -1){ buf = buf.slice(0, headEndIndex + "</head>".length); console.log(buf.toString()); res.destroy(); } }); }); req.end();
2条答案
按热度按时间8zzbczxx1#
最接近的方法是使用
content-range
request header向服务器请求特定的字节数。具体操作方法取决于您使用的HTTP API(
node:http
、fetch
、axios
等)。局限性:
<head>
,这很难,例如http://facebook.com
在</head>
结束之前给了我27K的数据,而http://example.com
只有940B。Content-Range
j91ykkif2#
另一个不那么干净的解决方案(除了Quentin的answer)是将站点“流式”到一个缓冲区,并在到达
</head>
时中止。问题是,最后一个块仍然可能包含不止</head>
。