利用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 内容打印出来。

相关推荐
Python×CATIA工业智造44 分钟前
Frida RPC高级应用:动态模拟执行Android so文件实战指南
开发语言·python·pycharm
onceco1 小时前
领域LLM九讲——第5讲 为什么选择OpenManus而不是QwenAgent(附LLM免费api邀请码)
人工智能·python·深度学习·语言模型·自然语言处理·自动化
我叫小白菜2 小时前
【Java_EE】单例模式、阻塞队列、线程池、定时器
java·开发语言
狐凄2 小时前
Python实例题:基于 Python 的简单聊天机器人
开发语言·python
weixin_446122463 小时前
JAVA内存区域划分
java·开发语言·redis
悦悦子a啊3 小时前
Python之--基本知识
开发语言·前端·python
QuantumStack4 小时前
【C++ 真题】P1104 生日
开发语言·c++·算法
whoarethenext4 小时前
使用 C++/OpenCV 和 MFCC 构建双重认证智能门禁系统
开发语言·c++·opencv·mfcc
OEC小胖胖4 小时前
告别 undefined is not a function:TypeScript 前端开发优势与实践指南
前端·javascript·typescript·web
行云&流水5 小时前
Vue3 Lifecycle Hooks
前端·javascript·vue.js