关于我最近开发的一个React应用程序,我有一个问题。它基本上是一个登陆页面,使用React前端和Node+Express后端,从各种页面中抓取数据(抓取是用Python开发的)。
现在,React应用程序本身托管在Heroku中,并且scraper的执行正在工作,但并不理想。
我想做的是建立一个合适的流程
- 创建数据库
- 调度刮刀
- 收集数据库中的数据
- 在需要时从React应用程序中的数据库请求数据
我读过不同的可能性,如Firebase,也有不同的AWS选项,如EC2, Lambda, S3等。我有点迷失在这一切之中,所以也许你可以帮助我,给我一些建议!
提前感谢!
如果我正确理解了你的问题,那么抓取本身并不一定要与你的登陆页面/React应用程序相关联。让我们来看看一个可能的解决方案。
SQL数据库
你可以在这里使用任何SQL数据库,真的。为将要抓取的每个源创建一个包含相关列的表。我个人喜欢AWS中的RDS Postgres。抓取雅虎财经?嗯,有一张叫"雅虎"的桌子;以及"ticker"、"open"、"close"、"date"等列调度刮刀
我假设您已经使用Python处理了从源代码中实际抓取/提取信息的工作。您可以使用cronjob或包来安排刮削器每小时/每天/每周等运行。将刮削器连接到SQL数据库,以便以您需要的任何方式访问它并存储数据。抓取器可以在AWS的EC2中运行。您需要为实例做一些设置。您还可以将刮刀连接到诸如Sentry之类的应用程序,以轻松监控刮刀的进度和错误。
反应应用
将数据库连接到Node后端。对后端使用一个简单的API调用来访问数据并使用它。您可以使用sequelize ORM访问Postgres数据库。
总之,我相信这个想法是相对简单的,你只需要选择工具(我给出了一些建议)并开始实现它们!