@@ -20,26 +20,36 @@ npm install x-crawl
20
20
21
21
# # 示例
22
22
23
- 获取 https://docs.github.com/zh/get-started 的标题为例 :
23
+ 获取 bilibili 国漫主页的推荐轮播图片为例 :
24
24
25
25
` ` ` js
26
- // 导入模块 ES/CJS
26
+ // 1. 导入模块 ES/CJS
27
27
import XCrawl from ' x-crawl'
28
28
29
- // 创建一个爬虫实例
30
- const docsXCrawl = new XCrawl({
31
- baseUrl: ' https://docs.github .com' ,
32
- timeout: 10000,
33
- intervalTime: { max: 2000 , min: 1000 }
29
+ // 2. 创建一个爬虫实例
30
+ const myXCrawl = new XCrawl({
31
+ baseUrl: ' https://www.bilibili .com' ,
32
+ timeout: 10000, // 超时时间
33
+ intervalTime: { max: 6000 , min: 2000 } // 控制请求频率
34
34
})
35
35
36
- // 调用 fetchHTML API 爬取
37
- docsXCrawl.fetchHTML(' /zh/get-started' ).then(( res) => {
38
- const { jsdom } = res.data
39
- console.log(jsdom.window.document.querySelector('title')?.textContent)
36
+ // 3.调用 fetchHTML API 爬取 HTML
37
+ myXCrawl.fetchHTML(' /guochuang/' ).then(( res) => {
38
+ const { jsdom } = res.data // 默认使用了 JSDOM 库解析 HTML
39
+
40
+ // 3 .1 .获取轮播图片的 src
41
+ const imgSrc: string[] = []
42
+ const recomEls = jsdom.window.document.querySelectorAll('.chief-recom-item')
43
+ recomEls.forEach((item) => imgSrc.push(item.querySelector('img').src))
44
+
45
+ // 3.2.调用 fetchFile API 爬取图片
46
+ const requestConifg = imgSrc.map(( src) => ({ url: `https: ${src} ` }))
47
+ myXCrawl.fetchFile({ requestConifg, fileConfig: { storeDir: ' ./upload' } })
40
48
})
41
49
` ` `
42
50
51
+ ** 注意:** 请勿随意爬取,这里只是为了演示爬取过程,并将请求频率控制在 6000ms 到 2000ms 内。
52
+
43
53
# # 核心概念
44
54
45
55
# ## XCrawl
0 commit comments