后处理¶
Scrapy提供了一个选项来激活插件,以便在将其导出到Feed存储之前对其进行后期处理。除了使用 builtin plugins ,您可以创建自己的 plugins 。
这些插件可以通过 postprocessing
馈送的选项。必须按照您希望处理提要的顺序向该选项传递一个后处理插件列表。这些插件可以声明为导入字符串,也可以使用插件的导入类声明。插件的参数可以通过提要选项传递。看见 feed options 举个例子。
内置插件¶
- classscrapy.extensions.postprocessing.GzipPlugin(file: BinaryIO, feed_options: Dict[str, Any])[源代码]¶
使用以下命令压缩接收的数据 gzip 。
已接受 feed_options
参数:
gzip_compresslevel
gzip_mtime
gzip_filename
看见 gzip.GzipFile
有关参数的详细信息,请参阅。
- classscrapy.extensions.postprocessing.LZMAPlugin(file: BinaryIO, feed_options: Dict[str, Any])[源代码]¶
使用以下命令压缩接收的数据 lzma 。
已接受 feed_options
参数:
lzma_format
lzma_check
lzma_preset
lzma_filters
注解
lzma_filters
不能在PyPy版本7.3.1及更早版本中使用。
看见 lzma.LZMAFile
有关参数的详细信息,请参阅。
- classscrapy.extensions.postprocessing.Bz2Plugin(file: BinaryIO, feed_options: Dict[str, Any])[源代码]¶
使用以下命令压缩接收的数据 bz2 。
已接受 feed_options
参数:
看见 bz2.BZ2File
有关参数的详细信息,请参阅。
自定义插件¶
每个插件都是一个必须实现以下方法的类:
- __init__(self, file, feed_options)¶
初始化插件。
- 参数
- write(self, data)¶
Process and write data (bytes
or memoryview
) into the plugin's target file. It must return number of bytes written.
- close(self)¶
关闭目标文件对象。
要将参数传递给插件,请使用 feed options 。然后,您可以从 __init__
插件的方法。