首页 > 解决方案 > 使用 Scrapy 将网站中的新数据提取到现有表中

问题描述

我有一个使用 Python 的 Scrapy 项目。我从网站上提取了我想要的所有数据。但我想将新数据从网站拉到现有表中,而不是在每次更新时从一开始就拉数据。例如,

+---------------------------+
| ID  |  Name   |   Job     |
+---------------------------+
| 01  |  Maria  |   Doctor  |
+---------------------------+
| 02  |  Silvia |   Teacher |
+---------------------------+
| 03  |  Lora   |   Soldier |
+---------------------------+

随着新的更新,新数据已添加到网站。这个数据是:

+-------------------------+
| ID  | Name   | Job      |
+-------------------------+
| 04  | Blanca | Engineer |
+-------------------------+

所以,当我运行我的代码时,我只想将新数据从网站拉到现有表中。不是从头再来。

我该怎么做?

标签: pythonmysqlsqlscrapyweb-crawler

解决方案


有一种方法可以做到这一点,即使用管道并将数据与前一个数据映射,并在数据库中不可用时插入记录。至于scrapy,它完全依赖于选择器。如果前一个的选择器和站点上的数据相同,那么您在抓取数据时无法区分数据。该管道将​​帮助您根据您的要求过滤记录。

https://docs.scrapy.org/en/latest/topics/item-pipeline.html


推荐阅读