繁体   English   中英

从具有数千行的HTML表更新MySQL表

[英]Update a MySQL table from an HTML table with thousands of rows

我在网络上有一个html文件,该文件几乎每分钟都会更新表中的新行。 在任何时候,该文件都包含将近15000行,我想用该表中的所有数据创建一个MySQL表,然后再根据可用数据计算出更多数据。

所述HTML表格包含最近3天的行。 我想将所有这些存储在我的mysql表中,并每小时大约更新一次表(可以通过cron完成吗?)

为了连接到数据库,我使用了运行良好的MySQLdb 但是,我不确定这样做的最佳实践是什么。 我可以用刮数据bs4 ,使用连接表MySQLdb 但是我应该如何更新表格? 我应该使用什么逻辑来抓取使用最少资源的页面?

我没有得到任何结果,只是刮擦和书写。

有指针吗?

我的建议是不要逐行更新值,而是尝试在临时表中使用批量插入,然后根据某个计时键将数据移至实际表中。 如果您有键列,则该键列很适合读取添加的最新行。

您可以采用以下方法:

出于讨论的目的,让master作为抓取数据的最终目的地。 然后我们可以采取以下步骤:

  1. 从网页上抓取数据。
  2. 将这些抓取的数据存储在MySQL临时表中,例如temp
  3. 执行EXCEPT操作仅提取存在于主服务器中而不是temp中的那些行。
  4. 将步骤3中获得的行保留在表中。

请参考链接以了解如何在MySQL中执行SET操作。 同样,建议将所有这些逻辑放在存储过程中,然后将要处理的数据集传递给它(不确定这部分在MySQL中是否可行) ,为该方法增加一个步骤 -基于以下讨论,我们可以使用基于时间戳的列来确定需要放入表中的最新行。 如果没有基于时间戳的列,则上述基于SET的操作的方法效果很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM