如何 运行 ScraPy Spiders in Play, Java/Scala 环境?

How to run ScraPy Spiders in Play, Java/Scala environment?

对于当前的项目,我在 Scala 中制作了一个 Web API,但是我需要针对每个用户请求抓取 +- 70 个网址。我如何在使用 Scala/Java 的同时使用 Scrapy 做到这一点?还有其他方法吗?

尝试使用 Actor 执行后台任务。尽管实现此目的的一种方法是安排某事 2 每 N 秒发生一次,但使用 Actor 会添加一个队列(邮箱)。队列很重要,因此您不会使服务器超载。

你可以拥有这样的控制器1:

case object StartScraping

class Scraper extends Actor {
  def receive = {
    case StartScraping =>
      // do the scraping!
  }
}

class MyController (@Named("scraper-actor") configuredActor: ActorRef) {
  def get = Action {
    configuredActor ! StartScraping
  }
}

您没有提供太多规格方面的细节,但这是一个良好的开端,适用于多种用途。