Skip to content

爬取文件

通过 crawlFile() 爬取文件数据。

js
import { createCrawl } from 'x-crawl'

const crawlApp = createCrawl({ intervalTime: { max: 3000, min: 1000 } })

crawlApp
  .crawlFile({
    targets: [
      'https://www.example.com/file-1',
      'https://www.example.com/file-2'
    ],
    storeDirs: './upload' // 存放文件夹
  })
  .then((res) => {})

生命周期

crawlFile API 拥有的声明周期函数:

  • onCrawlItemComplete: 当每个爬取目标完成后会回调

  • onBeforeSaveItemFile: 会在保存文件前回调

onCrawlItemComplete

在 onCrawlItemComplete 函数中你可以提前拿到每次爬取目标的结果。

onBeforeSaveItemFile

在 onBeforeSaveItemFile 函数中你可以拿到 Buffer 类型的文件,你可以对该 Buffer 进行处理,然后返回一个 Buffer 或者一个返回值是 Buffer 的 Promise ,x-crawl 会将返回的 Buffer 替换掉拿到的 Buffer 存储到文件中。

示例

调整图片大小

使用 sharp 库对需要爬取的图片进行调整大小操作:

js
import { createCrawl } from 'x-crawl'
import sharp from 'sharp'

const crawlApp = createCrawl()

crawlApp
  .crawlFile({
    targets: [
      'https://www.example.com/file-1.jpg',
      'https://www.example.com/file-2.jpg'
    ],
    onBeforeSaveItemFile: (info) => sharp(info.data).resize(200).toBuffer()
  })
  .then((res) => {
    res.forEach((item) => {
      console.log(item.data?.data.isSuccess)
    })
  })

基于 MIT 许可发布