【问题标题】:Prevent Apify from shutting down my express server防止 Apify 关闭我的快递服务器
【发布时间】:2020-01-12 17:45:58
【问题描述】:

我有一个带有POST 端点的快速服务器,它启动了一个爬虫。当爬虫完成时,它会关闭整个服务器。难道我做错了什么?我怎样才能防止它发生?

项目看起来像这样:

// server.js
const express = require('express')
const bodyParser = require('body-parser')
const startSearch = require('./crawler.js')

const app = express()

app.use(bodyParser.json())

app.post('/crawl', async (req, res) => {
  const { foo, bar } = req.body

  startSearch({ foo, bar })
  res.end()
})

app.listen(PORT, () => console.log(`listening on port ${PORT}`))

// crawler.js
const Apify = require('apify')

const startSearch = ({ foo, bar }) => {
  Apify.main(async () => {
    const sources = [{
      url: 'https://path_to_website.com',
      userData: { foo, bar }
    }]
    const requestList = await Apify.openRequestList(null, sources)

    const crawler = new Apify.PuppeteerCrawler({
      requestList,
      handlePageFunction: async ({ request, page }) => {
          // do things using puppeteer
        }
      }
    })

    await crawler.run()
  })
}

【问题讨论】:

  • 避免使用Apify.main()。详情见stackoverflow.com/questions/56977763/…
  • 是的!那行得通。谢谢!随意回答,我会验证它。即使这是重复的,我认为保留这个问题是有价值的。我永远不会仅仅通过阅读问题来阅读您发送给我的链接,因为我没有在 Google Cloud 中做任何事情

标签: javascript node.js express apify


【解决方案1】:

请避免使用Apify.main()。详情见How to use Apify on Google Cloud Functions

(我以为我正在发送答案,但似乎只是评论)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-29
    • 2017-05-10
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    • 2017-08-14
    • 2012-02-08
    相关资源
    最近更新 更多