Python全系列 教程
3567个小节阅读:5930.7k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
当数据在Spider中被收集之后,可以传递到Item Pipeline中统一进行处理
每个item pipeline就是一个普通的python类,包含的方法名如下:
方法名 | 含义 | 是否必须实现 |
---|---|---|
process_item(self,item,spider) | 用于处理接收到的item | 是 |
open_spider(self,spider) | 表示当spider被开启的时候调用这个方法 | 否 |
close_spider(self,spider) | 当spider关闭时候这个方法被调用 | 否 |
接收item
在process_item
方法中保存
是否要保存数据
取决于是否编写代码用于保存数据
决定此Item是否进入下一个pipeline
xxxxxxxxxx
class SaveFilePipeline:
def open_spider(self,spider):
self.file = open('douban5.txt','w')
def process_item(self, item, spider):
self.file.write(f'name:{item.get("name")} score:{item.get("score")}\n')
def close_spider(self,spider):
self.file.close()
xxxxxxxxxx
from scrapy.exceptions import DropItem
class XSPipeline:
def open_spider(self,spider):
self.file = open('xs.txt','w',encoding='utf-8')
def process_item(self, item, spider):
if item.get('title'):
self.file.write(item.get('title'))
self.file.write('\n')
return item
else:
raise DropItem(f"Missing title in {item}")
def close_spider(self,spider):
self.file.close()
实时效果反馈
1. 关于Scrapy, 保存数据说法错误的是?
A 可以通过Spider中保存数据
B 可以通过pipeline中保存数据
C pipeline中通过process_item方法处理数据
D 通过open_spider方法处理数据
答案
1=>D