国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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ó)家法律
吕梁市| 登封市| 上林县| 金堂县| 大名县| 石屏县| 台南县| 广饶县| 天津市| 南和县| 阳曲县| 杭州市| 伊金霍洛旗| 河南省| 永胜县| 扶绥县| 房产| 通州区| 临潭县| 兴业县| 南城县| 西城区| 获嘉县| 连江县| 普陀区| 长宁区| 门头沟区| 博湖县| 高淳县| 探索| 鄂州市| 兴国县| 洞口县| 安陆市| 安塞县| 桑日县| 通山县| 内黄县| 和林格尔县| 齐河县| 河北区|