Python實戰演練之數據過濾

上章回顧

從上一章Python實戰演練之數據導出中最後導出的數據表中有None的存在,它們是免費課程,這不是我們所需要的內容,所以對其進行數據過濾,保證獲取數據的完整。

開啓EducsdnPipeline

在settings中開啓EducsdnPipeline

ITEM_PIPELINES = {
    # 爲了做數據過濾,凡是要經過 MysqlPipeline的先經過 EducsdnPipeline
    # 先在EducsdnPipeline中進行過濾,MysqlPipeline就不會儲存
    'educsdn.pipelines.EducsdnPipeline': 300,
    'educsdn.pipelines.MysqlPipeline': 301,
}

重寫

重寫pipelines.py中的EducsdnPipeline,將價格爲None的數據過濾掉。

import pymysql
from scrapy.exceptions import DropItem

class EducsdnPipeline(object):
    def process_item(self, item, spider):
        if item['price'] == None:
            raise DropItem("drop item")
        else:
            return item

MysqlPipeline不做改變,和前文一致

清空表數據
再次在終端執行:

educsdn $ scrapy crawl courses

在這裏插入圖片描述
price == None 的數據已經被清理掉了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章