我在网络上有一个html文件,几乎每分钟都会更新一个表中的新行。在任何一点上,该文件包含接近15000行,我想创建一个包含表中所有数据的MySQL表,然后再根据可用数据计算一些。
所述HTML表格包含最近3天的行数。我想将它们全部存储在我的mysql表中,并且每小时左右更新一次表(这可以通过cron完成吗?)
为了连接到数据库,我正在使用MySQLdb
,它可以正常工作。但是,我不确定这样做的最佳做法是什么。我可以使用bs4
抓取数据,使用MySQLdb
连接到表格。但是我应该如何更新表格呢?我应该使用什么逻辑来刮取使用最少资源的页面?
我没有取得任何结果,只是抓取和写作。
请指点什么?
答案 0 :(得分:0)
我的建议不是逐行更新值,而是尝试在临时表中使用批量插入,然后根据某个计时键将数据移动到实际表中。如果你有一个关键列,它可以在你添加时阅读最近的行。
答案 1 :(得分:0)
您可以采用以下方法:
出于讨论的目的,让 master 成为抓取数据的最终目标。 然后我们可以采取以下步骤:
请参阅this链接以了解如何在MySQL中执行SET操作。此外,建议将所有这些逻辑放在存储过程中并将其传递给要处理的数据集(不确定MySQL中是否可以使用此部分) 向方法添加一个步骤 - 基于下面的讨论,我们可以使用基于时间戳的列来确定需要放入表中的最新行。如果没有基于时间戳的列,上述基于SET的操作方法效果很好。