爬蟲課程(十)|豆瓣:通過Pipeline保存數(shù)據(jù)到j(luò)son文件和mysql數(shù)據(jù)庫

在上一個課程爬蟲課程(九)|Scrapy中items設(shè)計及如何把item傳給Item Pipeline 中,我們知道了怎么把Item的值傳給Pipeline管道,那么這篇文章我們就來介紹下怎么通過Pipeline把數(shù)據(jù)保存起來。

一、通過Pipeline把數(shù)據(jù)保存到Json文件

我使用的方法是調(diào)用scrapy提供的json export導(dǎo)出json文件,實際上scrapy.exporters提供了導(dǎo)出多個文件的方法,當(dāng)我們?nèi)xporters.py源碼查看是,我們發(fā)現(xiàn)它提供了8中導(dǎo)出文件的方式,如下圖,我們這里只舉例保存json格式。

exporters支持導(dǎo)出8中不同格式的文件

第一步,先到Pipeline文件編寫一個保存json文件的Pipeline,如下圖片:

編寫Pipeline

第二步,把這個DataSubmitJsonFilePipeline配置到settings中,如下圖:

settings

第三步,執(zhí)行douban_book爬蟲。

執(zhí)行

最后,生成了doubanBook.json文件(默認(rèn)格式是一行,我使用JSON Parser進行了格式化)。

doubanBook.json

二、通過Pipeline把數(shù)據(jù)保存到MYSQL數(shù)據(jù)庫

第一步,先創(chuàng)建一個數(shù)據(jù)庫spider_db,新建一個表tb_douban_book,并把對應(yīng)的數(shù)據(jù)表字段增加上去,如下圖,ps:如果有對mysql不了解的,可以留言告訴我,我再決定要不要寫一篇文章來介紹下mysql的使用。

新建tb_douban_book表

第二步,編寫一個插入數(shù)據(jù)庫數(shù)據(jù)的Pipeline,如下圖:

插入數(shù)據(jù)庫的Pipeline

第三步,把這個DataSubmitMysqlPipeline配置到settings中,如下圖:

配置settings

最后,執(zhí)行douban_book爬蟲,查看數(shù)據(jù)庫的結(jié)果,所有的數(shù)據(jù)都成功插入到mysql數(shù)據(jù)表中。

數(shù)據(jù)入庫

三、對上面數(shù)據(jù)插入MYSQL數(shù)據(jù)庫的說明

我們知道上面的方法是通過同步的方式把Item中的數(shù)據(jù)插入到MYSQL數(shù)據(jù)庫中,然后在實際應(yīng)用中,為了能夠更快速度地響應(yīng)數(shù)據(jù)插入的請求,我們都是采用異步的方式把數(shù)據(jù)插入MYSQL數(shù)據(jù)庫。

關(guān)于使用數(shù)據(jù)庫連接池和異步的方式插入數(shù)據(jù)庫的使用,我們會在后面的課程中講解。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容