4
4
5
5
x-crawl 是 Nodejs 多功能爬虫库。
6
6
7
+ 如果对您有帮助,可以点个 Star 支持一下。
8
+
7
9
## 特征
8
10
9
11
- 只需简单的配置即可抓取页面、JSON、文件资源等等。
@@ -29,6 +31,11 @@ fetchPage API 内部使用 [puppeteer](https://github.com/puppeteer/puppeteer)
29
31
- [ 安装] ( #安装 )
30
32
- [ 示例] ( #示例 )
31
33
- [ 核心概念] ( #核心概念 )
34
+ * [ 创建第一个爬虫实例] ( #创建第一个爬虫实例 )
35
+ * [ 爬取页面] ( #爬取页面 )
36
+ * [ 爬取接口] ( #爬取接口 )
37
+ * [ 爬取文件] ( #爬取文件 )
38
+ - [ API] ( #API )
32
39
* [ xCrawl] ( #xCrawl )
33
40
+ [ 类型] ( #类型-1 )
34
41
+ [ 示例] ( #示例-1 )
@@ -120,6 +127,72 @@ myXCrawl.startPolling({ d: 1 }, () => {
120
127
121
128
# # 核心概念
122
129
130
+ # ## 创建一个爬虫应用实例
131
+
132
+ ` ` ` js
133
+ import xCrawl from ' x-crawl'
134
+
135
+ const myXCrawl = xCrawl({
136
+ // 选项
137
+ })
138
+ ` ` `
139
+
140
+ 有关选项内容可参考 [XCrawlBaseConfig](# XCrawlBaseConfig) 。
141
+
142
+ # ## 爬取页面
143
+
144
+ 可以通过 [fetchPage()](# fetchPage) 爬取接口数据
145
+
146
+ ` ` ` js
147
+ myXCrawl.fetchPage(' https://xxx.com' ).then(res => {
148
+ const { jsdom, page } = res
149
+ })
150
+ ` ` `
151
+
152
+ # ## 爬取接口
153
+
154
+ 可以通过 [fetchData()](# fetchData) 爬取接口数据
155
+
156
+ ` ` ` js
157
+ const requestConfig = [
158
+ { url: ' /xxxx' , method: ' GET' },
159
+ { url: ' /xxxx' , method: ' GET' },
160
+ { url: ' /xxxx' , method: ' GET' }
161
+ ]
162
+
163
+ myXCrawl.fetchData({
164
+ requestConfig,
165
+ intervalTime: { max: 5000, min: 1000 }
166
+ }).then(res => {
167
+ console.log(res)
168
+ })
169
+ ` ` `
170
+
171
+ # ## 爬取文件
172
+
173
+ 可以通过 [fetchFile()](# fetchFile) 爬取文件数据
174
+
175
+ ` ` ` js
176
+ import path from ' node:path'
177
+
178
+ const requestConfig = [
179
+ { url: ' /xxxx' },
180
+ { url: ' /xxxx' },
181
+ { url: ' /xxxx' }
182
+ ]
183
+
184
+ myXCrawl.fetchFile({
185
+ requestConfig,
186
+ fileConfig: {
187
+ storeDir: path.resolve(__dirname, ' ./upload' ) // 存放文件夹
188
+ }
189
+ }).then(fileInfos => {
190
+ console.log(fileInfos)
191
+ })
192
+ ` ` `
193
+
194
+ # # API
195
+
123
196
# ## xCrawl
124
197
125
198
通过调用 xCrawl 创建一个爬虫实例。请求队列是由实例方法内部自己维护,并非由实例自己维护。
@@ -224,8 +297,8 @@ const requestConfig = [
224
297
]
225
298
226
299
myXCrawl.fetchData({
227
- requestConfig, // 请求配置, 可以是 RequestConfig | RequestConfig[]
228
- intervalTime: { max: 5000 , min: 1000 } // 不使用创建 myXCrawl 时传入的 intervalTime
300
+ requestConfig,
301
+ intervalTime: { max: 5000 , min: 1000 }
229
302
}).then(res => {
230
303
console.log(res)
231
304
})
@@ -252,6 +325,8 @@ function fetchFile: (
252
325
#### 示例
253
326
254
327
```js
328
+ import path from 'node:path'
329
+
255
330
const requestConfig = [
256
331
{ url: '/xxxx' },
257
332
{ url: '/xxxx' },
0 commit comments