一个 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 商店,您可能会遇到一些竞速情况。如果他们不共享任何状态,您应该可以开始了。
我正在搜索它的文档,但找不到任何相关文章。
我想知道我是否可以在一个 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 商店,您可能会遇到一些竞速情况。如果他们不共享任何状态,您应该可以开始了。