问题描述
我有一个使用Python的Scrapy项目。我从网站上提取了所有想要的数据。但是我想从网站将新数据提取到现有表中,而不是在每次更新时从头开始提取数据。例如,
+---------------------------+
| ID | Name | Job |
+---------------------------+
| 01 | Maria | Doctor |
+---------------------------+
| 02 | Silvia | Teacher |
+---------------------------+
| 03 | Lora | Soldier |
+---------------------------+
随着新的更新,新数据已添加到网站。该数据是:
+-------------------------+
| ID | Name | Job |
+-------------------------+
| 04 | Blanca | Engineer |
+-------------------------+
因此,当我运行代码时,我只想将网站中的新数据提取到现有表中。不会再全部。
我该怎么办?
解决方法
有一种方法可以使用流水线,将数据与上一个数据流映射,如果数据库中尚不存在该记录,则将其插入。就scrapy而言,它完全取决于选择器。如果上一个选择器和站点上的数据选择器相同,则在爬网时无法区分数据。该管道将帮助您根据需要过滤记录。