利用TypeScript 和 jsdom 库实现自动化抓取数据

以下是一个使用 TypeScript 和 jsdom 库的下载器程序,用于下载zhihu的内容。此程序使用了 duoip.cn/get_proxy 这段代码。

typescript 复制代码
import { JSDOM } from 'jsdom';
import { getProxy } from 'https://www.duoip.cn/get_proxy';

const zhihuUrl = 'https://www.zhihu.com';

(async () => {
  // 获取代理服务器
  const proxy = await getProxy();
  console.log('使用代理服务器:', proxy);

  // 创建一个 JSDOM 实例,并设置代理服务器
  const dom = new JSDOM(`<!DOCTYPE html><html><head><meta charset="UTF-8"></head><body></body></html>`, {
    proxy: proxy,
    userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
  });

  // 使用 fetch 方法获取 zhihu 主页内容
  const response = await dom.window.fetch(zhihuUrl);
  const html = await response.text();

  // 打印获取到的 HTML 内容
  console.log('zhihu 主页 HTML:', html);
})();

这个程序首先引入了 JSDOM 和 getProxy 函数。然后定义了一个名为 zhihuUrl 的常量,用于存储要下载的 URL。接下来,使用 async/await 语法定义了一个异步函数,用于执行下载操作。

首先,调用 getProxy 函数获取代理服务器。然后,创建一个 JSDOM 实例,并为其设置代理服务器和用户代理。接着,使用 dom.window.fetch 方法获取 zhihu 主页内容,并将结果存储在 html 变量中。最后,将获取到的 HTML 内容打印出来。

相关推荐
北辰浮光29 分钟前
[Web数据控制]浏览器中cookie、localStorage和sessionStorage
前端·vue.js·typescript
eqwaak01 小时前
科技信息差(8.26)
大数据·开发语言·人工智能·编辑器
掘金安东尼2 小时前
Rspack 推出 Rslint:一个用 Go 编写的 TypeScript-First Linter
前端·javascript·github
黑客影儿2 小时前
在Godot中为您的游戏添加并控制游戏角色的完整技术指南
开发语言·游戏·游戏引擎·godot·gdscript·游戏开发·3d游戏
蓝胖子的小叮当2 小时前
JavaScript基础(十四)字符串方法总结
前端·javascript
yaoxin5211233 小时前
168. Java Lambda 表达式 - 专用比较器
java·开发语言
shylyly_3 小时前
Linux->多线程3
java·linux·开发语言·阻塞队列·生产者消费者模型
神秘人X7073 小时前
Ansible自动化运维介绍与安装
运维·自动化·ansible
weixin_541299944 小时前
VSCode: 从插件安装到配置,如何实现 Ctrl+S 保存时,完全按照 .eslintrc.js 中的 ESLint 规则自动格式化代码
javascript·ide·vscode
yw00yw4 小时前
常见的设计模式
开发语言·javascript·设计模式