运行 Laravel 网络应用程序中的网络抓取 cronjob 将数据保存到数据库的理想方式
Desired way of running a web scraping cronjob within a Laravel web app to save data to DB
目前正在开发一项新的 Web 服务,该服务要求我每隔几个小时抓取一个网站,以便将数据保存到我的 MySQL 数据库中。
我的问题是 - 我的抓取工具应该如何 运行?
目前我看到了几种方法:
cronjob 运行是一个用PHP编写的抓取脚本,抓取数据,并将数据保存到一个平面文件(即csv)中,然后我设置一个控制器解析数据并让我的模型保存数据
cronjob 运行是一个用PHP编写的抓取脚本,抓取数据,立即将数据保存到我的数据库中随着每一行数据的进入
以上两种方法,哪种更好?如果我只是在胡说八道,你能不能给我一个更好的方法:
抓取日期
将数据保存到我的数据库
在保存报废数据的两种选择中,如果我是你,我会选择第二种方式。原因很简单,一旦报废的数据已经在数据库中,管理起来就更容易了——这将节省您生成和使用临时文件的负担。
将(附加新数据)保存到平面文件中可能比插入到数据库中更快。但是,当 time/performance 很关键时,您可以更频繁地 运行 您的 cronjob 或 运行 您的 cronjob 的多个副本(例如,每个副本都删除不同的网站或不同的网页)。
目前正在开发一项新的 Web 服务,该服务要求我每隔几个小时抓取一个网站,以便将数据保存到我的 MySQL 数据库中。
我的问题是 - 我的抓取工具应该如何 运行?
目前我看到了几种方法:
cronjob 运行是一个用PHP编写的抓取脚本,抓取数据,并将数据保存到一个平面文件(即csv)中,然后我设置一个控制器解析数据并让我的模型保存数据
cronjob 运行是一个用PHP编写的抓取脚本,抓取数据,立即将数据保存到我的数据库中随着每一行数据的进入
以上两种方法,哪种更好?如果我只是在胡说八道,你能不能给我一个更好的方法:
抓取日期
将数据保存到我的数据库
在保存报废数据的两种选择中,如果我是你,我会选择第二种方式。原因很简单,一旦报废的数据已经在数据库中,管理起来就更容易了——这将节省您生成和使用临时文件的负担。
将(附加新数据)保存到平面文件中可能比插入到数据库中更快。但是,当 time/performance 很关键时,您可以更频繁地 运行 您的 cronjob 或 运行 您的 cronjob 的多个副本(例如,每个副本都删除不同的网站或不同的网页)。