今日概要
- 基於終端指令的持久化存儲
- 基於管道的持久化存儲
今日詳情
1.基於終端指令的持久化存儲
- 保證爬蟲文件的parse方法中有可迭代類型對象(通常為列表or字典)的返回,該返回值可以通過終端指令的形式寫入指定格式的文件中進行持久化操作。
2.基於管道的持久化存儲
scrapy框架中已經為我們專門集成好了高效、便捷的持久化操作功能,我們直接使用即可。要想使用scrapy的持久化操作功能,我們首先來認識如下兩個文件:
小試牛刀:將糗事百科首頁中的段子和作者數據爬取下來,然后進行持久化存儲
- 爬蟲文件:qiubaiDemo.py
- items文件:items.py
- 管道文件:pipelines.py
- 配置文件:settings.py
2.1 基於mysql的管道存儲
小試牛刀案例中,在管道文件里將item對象中的數據值存儲到了磁盤中,如果將item數據寫入mysql數據庫的話,只需要將上述案例中的管道文件修改成如下形式:
- pipelines.py文件
- settings.py
2.2 基於redis的管道存儲
小試牛刀案例中,在管道文件里將item對象中的數據值存儲到了磁盤中,如果將item數據寫入redis數據庫的話,只需要將上述案例中的管道文件修改成如下形式:
- pipelines.py文件
- 面試題:如果最終需要將爬取到的數據值一份存儲到磁盤文件,一份存儲到數據庫中,則應該如何操作scrapy?
- 答:管道文件中的代碼為
在settings.py開啟管道操作代碼為: