python - Scrapy ItemLoader數(shù)據(jù)清洗疑問(wèn)
問(wèn)題描述
在使用scrapy抓取數(shù)據(jù)時(shí),利用itemloader這個(gè)類,使用selector取出的值為空時(shí),進(jìn)入scrapy.Field()里調(diào)用filter(),selector取值不為空的確返回'有值',如果selector取出[]或'',那么value進(jìn)入filter()之后,并不會(huì)返回'無(wú)值'
def filter(value): if value:return '有值' else:return '無(wú)值' # 下面就簡(jiǎn)寫了,熟悉的應(yīng)該能看的懂 scrapy.Field(filter())
有什么辦法將抓取為空的值,經(jīng)過(guò)filyer()之后變成'無(wú)值'
問(wèn)題解答
回答1:謝邀~不太了解Scrapy,所以題主這個(gè)我不太好說(shuō)我用PHP自己寫的爬蟲大體思路是:1.先是根據(jù)正則和一些循環(huán),把要收集的頁(yè)面放到隊(duì)列里,按類別分類,例如分頁(yè)的列表頁(yè)一個(gè)隊(duì)列,列表里的數(shù)據(jù)內(nèi)容頁(yè)一個(gè)隊(duì)列。2.然后利用xpath來(lái)爬取相關(guān)內(nèi)容頁(yè)的數(shù)據(jù),爬取的過(guò)程中對(duì)一些爬取到的數(shù)據(jù)進(jìn)行如題主所需的那樣進(jìn)行處理。3.組裝數(shù)據(jù),按照自己所需的標(biāo)準(zhǔn)保存數(shù)據(jù)。
大體就是這樣,我絕對(duì)大部分爬蟲框架也大概都是這種思路吧,無(wú)非是在此基礎(chǔ)上增加了,反爬機(jī)制,多線程,多進(jìn)程,增量爬取等等功能。所以,題主找到你這個(gè)框架的爬取數(shù)據(jù)那里進(jìn)行處理或組裝數(shù)據(jù)的地方進(jìn)行處理都行。
相關(guān)文章:
1. node.js - mysql如何通過(guò)knex查詢今天和七天內(nèi)的匯總數(shù)據(jù)2. mysql 插入數(shù)值到特定的列一直失敗3. 360瀏覽器與IE瀏覽器有何區(qū)別???4. Python從URL中提取域名5. mysql - 百萬(wàn)行的表中是否盡量避免使用update等sql語(yǔ)句?6. python - 在使用Pycharm時(shí)經(jīng)??吹饺缦碌臉邮剑±ㄌ?hào)里紅色的部分是什么意思呢?7. javascript - 新浪微博網(wǎng)頁(yè)版的字?jǐn)?shù)限制是怎么做的8. 怎么在網(wǎng)頁(yè)中設(shè)置圖片進(jìn)行左右滑動(dòng)9. javascript - 豆瓣的這個(gè)自適應(yīng)是怎么做的?10. javascript - 用jsonp抓取qq音樂(lè)總是說(shuō)回調(diào)函數(shù)沒(méi)有定義
