运行 Laravel 网络应用程序中的网络抓取 cronjob 将数据保存到数据库的理想方式

Desired way of running a web scraping cronjob within a Laravel web app to save data to DB

目前正在开发一项新的 Web 服务,该服务要求我每隔几个小时抓取一个网站,以便将数据保存到我的 MySQL 数据库中。

我的问题是 - 我的抓取工具应该如何 运行?

目前我看到了几种方法:

  1. cronjob 运行是一个用PHP编写的抓取脚本,抓取数据,并将数据保存到一个平面文件(即csv)中,然后我设置一个控制器解析数据并让我的模型保存数据

  2. cronjob 运行是一个用PHP编写的抓取脚本,抓取数据,立即将数据保存到我的数据库中随着每一行数据的进入

以上两种方法,哪种更好?如果我只是在胡说八道,你能不能给我一个更好的方法:

  1. 抓取日期

  2. 将数据保存到我的数据库

在保存报废数据的两种选择中,如果我是你,我会选择第二种方式。原因很简单,一旦报废的数据已经在数据库中,管理起来就更容易了——这将节省您生成和使用临时文件的负担。

将(附加新数据)保存到平面文件中可能比插入到数据库中更快。但是,当 time/performance 很关键时,您可以更频繁地 运行 您的 cronjob 或 运行 您的 cronjob 的多个副本(例如,每个副本都删除不同的网站或不同的网页)。