@@ -12,7 +12,7 @@ XCrawl 是 Nodejs 多功能爬虫库。
12
12
- 支持 Promise/Callback 方式获取结果
13
13
- 轮询功能
14
14
- 拟人化的请求间隔时间
15
- - 使用 TypeScript 编写
15
+ - 使用 TypeScript 编写,提供泛型
16
16
17
17
# 目录
18
18
@@ -75,24 +75,32 @@ const myXCrawl = new XCrawl({
75
75
intervalTime: { max: 3000, min: 2000 } // 控制请求频率
76
76
})
77
77
78
- // 3.调用 fetchPolling API 开始轮询功能,每隔一天会调用回调函数
78
+ // 3.设置爬取任务
79
+ // 调用 fetchPolling API 开始轮询功能,每隔一天会调用回调函数
79
80
myXCrawl.fetchPolling({ d: 1 }, () => {
80
- // 3.1. 调用 fetchHTML API 爬取 HTML
81
+ // 调用 fetchHTML API 爬取 HTML
81
82
myXCrawl.fetchHTML(' https://www.bilibili.com/guochuang/' ).then(( res) => {
82
- const { jsdom } = res.data // 默认使用了 JSDOM 库解析 HTML
83
-
84
- // 3 .2 .获取轮播图片的 src
85
- const imgSrc = []
86
- const recomEls = jsdom.window.document.querySelectorAll('.chief-recom-item')
87
- recomEls.forEach((item) => imgSrc.push(item.querySelector('img').src))
88
-
89
- // 3.3.调用 fetchFile API 爬取图片
90
- const requestConifg = imgSrc.map(( src) => ({ url: `https: ${src} ` }))
83
+ const { jsdom } = res.data // 默认使用了 JSDOM 库解析 HTML
84
+
85
+ // 获取轮播图片元素
86
+ const imgEls = jsdom.window.document.querySelectorAll('.chief-recom-item img')
87
+
88
+ // 设置请求配置
89
+ const requestConifg = []
90
+ imgEls.forEach((item) => requestConifg.push({ url: `https:${item.src} ` }))
91
+
92
+ // 调用 fetchFile API 爬取图片
91
93
myXCrawl.fetchFile({ requestConifg, fileConfig: { storeDir: ' ./upload' } })
92
94
})
93
95
})
94
96
` ` `
95
97
98
+ 运行效果:
99
+
100
+ ! [](https://raw.githubusercontent.com/coder-hxl/x-crawl/main/assets/crawler.png)
101
+
102
+ ! [](https://raw.githubusercontent.com/coder-hxl/x-crawl/main/assets/crawler-result.png)
103
+
96
104
** 注意:** 请勿随意爬取,这里只是为了演示如何使用 XCrawl ,并将请求频率控制在 3000ms 到 2000ms 内。
97
105
98
106
# # 核心概念
0 commit comments