這篇文章主要介紹python分布式爬蟲(chóng)中的rules有什么用,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
爬蟲(chóng)在找尋數(shù)據(jù)的時(shí)候,如果都隨意把找到的數(shù)據(jù)搬運(yùn)回來(lái),不僅我們的內(nèi)存裝不下,而且會(huì)搬回來(lái)很多重復(fù)的數(shù)據(jù),我們也沒(méi)有辦法一個(gè)個(gè)的進(jìn)行篩選。這時(shí)候我們需要給爬蟲(chóng)制定帶回來(lái)數(shù)據(jù)的規(guī)則,防止重復(fù)數(shù)據(jù)的產(chǎn)生。這樣我們?cè)賮?lái)談rules就很好理解了,可以看成是給爬蟲(chóng)制定的規(guī)則合集。
在rules中包含一個(gè)或多個(gè)Rule對(duì)象,每個(gè)Rule對(duì)爬取網(wǎng)站的動(dòng)作定義了特定操作。如果多個(gè)rule匹配了相同的鏈接,則根據(jù)規(guī)則在本集合中被定義的順序,第一個(gè)會(huì)被使用。
class scrapy.spiders.Rule( link_extractor, callback = None, cb_kwargs = None, follow = None, process_links = None, process_request = None )
link_extractor:是一個(gè)Link Extractor對(duì)象,用于定義需要提取的鏈接(Link Extractor對(duì)象見(jiàn)下)。
callback: 從link_extractor中每獲取到鏈接時(shí),參數(shù)所指定的值作為回調(diào)函數(shù),該回調(diào)函數(shù)接受一個(gè)response作為其第一個(gè)參數(shù)。
注意:當(dāng)編寫(xiě)爬蟲(chóng)規(guī)則時(shí),避免使用parse作為回調(diào)函數(shù)。由于CrawlSpider使用parse方法來(lái)實(shí)現(xiàn)其邏輯,如果覆蓋了 parse方法,crawl spider將會(huì)運(yùn)行失敗。
follow:是一個(gè)布爾(boolean)值,指定了根據(jù)該規(guī)則從response提取的鏈接是否需要跟進(jìn)。 如果callback為None,follow 默認(rèn)設(shè)置為T(mén)rue ,否則默認(rèn)為False。
process_links:指定該spider中哪個(gè)的函數(shù)將會(huì)被調(diào)用,從link_extractor中獲取到鏈接列表時(shí)將會(huì)調(diào)用該函數(shù)。該方法主要用來(lái)過(guò)濾。
process_request:指定該spider中哪個(gè)的函數(shù)將會(huì)被調(diào)用, 該規(guī)則提取到每個(gè)request時(shí)都會(huì)調(diào)用該函數(shù)。 (用來(lái)過(guò)濾request)
有了rules給爬蟲(chóng)制定規(guī)范,我們就可以放心的把搜集數(shù)據(jù)的任務(wù)交給爬蟲(chóng)們了。
以上是“python分布式爬蟲(chóng)中的rules有什么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)站標(biāo)題:python分布式爬蟲(chóng)中的rules有什么用-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://www.rwnh.cn/article22/djhijc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、品牌網(wǎng)站建設(shè)、網(wǎng)站策劃、軟件開(kāi)發(fā)、移動(dòng)網(wǎng)站建設(shè)、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容
移動(dòng)網(wǎng)站建設(shè)知識(shí)