五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

20. Scrapy 框架 - Pipeline

2020-07-02 10:10 作者:自學(xué)Python的小姐姐呀  | 我要投稿

1. Item Pipeline 介紹

當(dāng)Item 在Spider中被收集之后,就會(huì)被傳遞到Item Pipeline中進(jìn)行處理

每個(gè)item pipeline組件是實(shí)現(xiàn)了簡(jiǎn)單的方法的python類(lèi),負(fù)責(zé)接收到item并通過(guò)它執(zhí)行一些行為,同時(shí)也決定此Item是否繼續(xù)通過(guò)pipeline,或者被丟棄而不再進(jìn)行處理

item pipeline的主要作用:

  1. 清理html數(shù)據(jù)

  2. 驗(yàn)證爬取的數(shù)據(jù)

  3. 去重并丟棄

  4. 講爬取的結(jié)果保存到數(shù)據(jù)庫(kù)中或文件中

2. 編寫(xiě)自己的item pipeline

2.1 必須實(shí)現(xiàn)的函數(shù)

  • process_item(self,item,spider)

每個(gè)item piple組件是一個(gè)獨(dú)立的pyhton類(lèi),必須實(shí)現(xiàn)以process_item(self,item,spider)方法

每個(gè)item pipeline組件都需要調(diào)用該方法,這個(gè)方法必須返回一個(gè)具有數(shù)據(jù)的dict,或者item對(duì)象,或者拋出DropItem異常,被丟棄的item將不會(huì)被之后的pipeline組件所處理

2.2 可以選擇實(shí)現(xiàn)

  • open_spider(self,spider) 表示當(dāng)spider被開(kāi)啟的時(shí)候調(diào)用這個(gè)方法

  • close_spider(self,spider) 當(dāng)spider關(guān)閉時(shí)候這個(gè)方法被調(diào)用

2.3 應(yīng)用到項(xiàng)目

import json

class MoviePipeline(object):
? ?def process_item(self, item, spider):
? ? ? ?json.dump(dict(item), open('diban.json', 'a', encoding='utf-8'), ensure_ascii=False)
? ? ? ?return item
? ? ? ?

注意:

寫(xiě)到pipeline后,要在settings中設(shè)置才可生效

ITEM_PIPELINES = {
? ?'spiderdemo1.pipelines.MoviePipeline': 300
}

2.4 將項(xiàng)目寫(xiě)入MongoDB

MongoDB地址和數(shù)據(jù)庫(kù)名稱(chēng)在Scrapy設(shè)置中指定; MongoDB集合以item類(lèi)命名

from pymongo import MongoClient
from middle.settings import HOST
from middle.settings import PORT
from middle.settings import DB_NAME
from middle.settings import SHEET_NAME


class MiddlePipeline(object):
? ?def __init__(self):
? ? ? ?client = MongoClient(host=HOST, port=PORT)
? ? ? ?my_db = client[DB_NAME]
? ? ? ?self.sheet = my_db[SHEET_NAME]

? ?def process_item(self, item, spider):
? ? ? ?self.sheet.insert(dict(item))
? ? ? ?return item


20. Scrapy 框架 - Pipeline的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
航空| 喜德县| 大新县| 额敏县| 珲春市| 北票市| 榆社县| 通道| 区。| 仁怀市| 华容县| 青田县| 马山县| 石台县| 兴山县| 盐城市| 明溪县| 浦城县| 宁乡县| 南通市| 马鞍山市| 休宁县| 古田县| 邹平县| 原平市| 黑水县| 利辛县| 绥滨县| 康平县| 黔西县| 嘉祥县| 千阳县| 大丰市| 安溪县| 图们市| 漠河县| 乌鲁木齐市| 武威市| 公主岭市| 马边| 彰武县|