JavaScript:
下载网页

How to: (如何操作:)

使用JavaScript,你可以轻松下载网页。以下例子展示了如何使用fetchAPI和Node.js中的https模块来实现。

// 在浏览器中使用Fetch API
fetch('https://example.com')
  .then(response => response.text())
  .then(data => console.log(data))
  .catch(error => console.error(error));

// 在Node.js中使用https模块
const https = require('https');
const fs = require('fs');

https.get('https://example.com', (res) => {
  let data = '';
  res.on('data', (chunk) => {
    data += chunk;
  });
  res.on('end', () => {
    fs.writeFileSync('example.html', data);
  });
}).on('error', (err) => {
  console.error(err.message);
});

输出会是example.com的HTML源码,存放在控制台或example.html文件中。

Deep Dive (深入了解)

早期,下载网页更多是通过服务器端脚本来完成的,比如使用PHP的file_get_contents或者Python的urllib。随着JavaScript的成熟,特别是Node.js的出现,JavaScript也能胜任这个任务。 fetchAPI是现在浏览器中流行的选择,因为它基于Promise,简化了异步操作。在Node.js中,之前通常使用request库,但自从https模块的改进后,人们开始更多用它来处理HTTP请求。备选方案还包括了axios等库,这些库可以提供更多功能并简化错误处理。

下载网页时,确保了解目标网站的robots.txt文件和服务条款,避免违反了爬虫协议。

See Also (另请参阅)

  • MDN Web Docs上的Fetch API:https://developer.mozilla.org/zh-CN/docs/Web/API/Fetch_API
  • Node.js官方文档中的HTTPS模块:https://nodejs.org/api/https.html
  • Axios库:https://github.com/axios/axios