一个 Apify 项目可以包含多个爬虫吗?

Can an Apify project contain several crawlers?

我正在搜索它的文档,但找不到任何相关文章。

我想知道我是否可以在一个 Apify 项目中定义多个爬虫,就像你可以在 Scrapy 上有多个蜘蛛一样,或者我是否必须为我喜欢爬取的每个新网站创建一个新项目。

如有任何回复,我将不胜感激,提前致谢!

是的,您可以创建尽可能多的爬虫实例 need/want。

将站点地图抓取之类的东西分开通常是一件好事,使用它自己的 CheerioCrawler/BasicCrawler 具有特定设置和特定队列的实例,然后使用所需的爬虫进行完整的抓取,例如PuppeteerCrawler,如果需要也可以使用它自己的队列。

您可以选择运行它们与

并行
await Promise.all([
   crawler1.run(), 
   crawler2.run(),
]); 

或一次一个,使用

await crawler1.run();
await crawler2.run();

使用 Promise.all 时需要注意的是,如果他们 reading/writing 去同一家 key-value 商店,您可能会遇到一些竞速情况。如果他们不共享任何状态,您应该可以开始了。