搜尋

首頁  >  問答  >  主體

python - Scrapy ItemLoader資料清洗疑問

在使用scrapy抓取資料時,利用itemloader這個類,使用selector取出的值為空時,進入scrapy.Field ()
裡呼叫filter(),selector取值不為空的確返回"有值",如果selector取出[]"",那麼value進入filter()之後,並不會回傳"無值"

def filter(value):
    if value:
        return "有值"
    else:
        return "无值"
 # 下面就简写了,熟悉的应该能看的懂
 scrapy.Field(filter())
 

有什麼辦法將抓取為空的值,經過filyer()之後變成"無值"

PHPzPHPz2742 天前1142

全部回覆(1)我來回復

  • 仅有的幸福

    仅有的幸福2017-05-27 17:41:47

    謝邀~
    不太了解Scrapy,所以題主這個我不太好說我用PHP自己寫的爬蟲大體思路是:
    1.先是根據正則和一些循環,把要收集的頁放到隊列裡,按類別分類,例如分頁的列表頁一個佇列,列表裡的資料內容頁一個佇列。
    2.然後利用xpath來爬取相關內容頁的數據,爬取的過程中對一些爬取到的數據進行如題主所需的那樣進行處理。
    3.組裝數據,依照自己所需的標準保存數據。

    大體就是這樣,我絕對大部分爬蟲框架也大概都是這種思路吧,無非是在此基礎上增加了,反爬機制,多線程,多進程,增量爬取等等功能。所以,題主找到你這個框架的爬取数据那里进行处理或组装数据的地方进行处理都行

    回覆
    0
  • 取消回覆