在使用scrapy
抓取資料時,利用itemloader
這個類,使用selector
取出的值為空時,進入scrapy.Field ()
裡呼叫filter()
,selector取值不為空的確返回"有值",如果selector
取出[]
或""
,那麼value
進入filter()
之後,並不會回傳"無值"
def filter(value):
if value:
return "有值"
else:
return "無值"
# 下面就簡寫了,熟悉的應(yīng)該能看的懂
scrapy.Field(filter())
有什麼辦法將抓取為空的值,經(jīng)過filyer()之後變成"無值"
學(xué)習(xí)是最好的投資!
謝邀~
不太了解Scrapy,所以題主這個我不太好說我用PHP自己寫的爬蟲大體思路是:
1.先是根據(jù)正則和一些循環(huán),把要收集的頁放到隊列裡,按類別分類,例如分頁的列表頁一個佇列,列表裡的資料內(nèi)容頁一個佇列。
2.然後利用xpath來爬取相關(guān)內(nèi)容頁的數(shù)據(jù),爬取的過程中對一些爬取到的數(shù)據(jù)進行如題主所需的那樣進行處理。
3.組裝數(shù)據(jù),依照自己所需的標準保存數(shù)據(jù)。
大體就是這樣,我絕對大部分爬蟲框架也大概都是這種思路吧,無非是在此基礎(chǔ)上增加了,反爬機制,多線程,多進程,增量爬取等等功能。所以,題主找到你這個框架的爬取數(shù)據(jù)那里進行處理或組裝數(shù)據(jù)的地方進行處理都行
。