使用Scrapy将网站中的新数据提取到现有表中

问题描述

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

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

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

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

因此,当我运行代码时,我只想将网站中的新数据提取到现有表中。不会再全部。

我该怎么办?

解决方法

有一种方法可以使用流水线,将数据与上一个数据流映射,如果数据库中尚不存在该记录,则将其插入。就scrapy而言,它完全取决于选择器。如果上一个选择器和站点上的数据选择器相同,则在爬网时无法区分数据。该管道将​​帮助您根据需要过滤记录。

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