pynzb是一个用于解析nzb文件的统一api,其中包括几个具体的实现
pynzb的Python项目详细描述
介绍
------------
nzb是一种基于xml的文件格式,用于从nntp(usenet)检索帖子
服务器。
由于nzb是基于xml的,因此构建一次性的解析器进行解析相对容易
nzb文件。本项目旨在整合众多一次性NZB
将解析器转换为一个简单的接口。
这个包包括三个实现:一个基于expat,另一个
基于
在elementtree上,以及基于lxml的最终实现。顺序
按兼容性顺序列出。expat版本应该在
所有版本的python>;2.0和lxml都适用于所有版本的python>;2.5,以及
lxml仅在安装了lxml时才起作用。
关于安装lxml的说明
---
虽然lxml不是必需的,但在
过去。我发现这组命令运行得很好:
静态设备=真正的轻松安装'lxml>;=2.2beta4'
static_deps=真正的sudo easy_install'lxml>;=2.2beta4'
API文档
----
访问默认分析器
============================
只需从pynzb包导入nzb_解析器。它是一个实例化的版本
您的系统可以支持的最快可用解析器。
其他分析器位置
======================
``expatnzbparser``:
可在“pynzb.expat_nzb”命名空间中找到。
`` etreenzbparser``:
在“pynzb.etree_nzb”命名空间中可用。
``lxmlnzbparser``:
可在“pynzb.lxml_nzb”命名空间中找到。
使用nzb解析器
====================
如果使用特定的解析器,比如“etreenzbparser”,则首先
必须实例化它:
nzb_parser=etreenzbparser()
否则,您只需导入系统的默认解析器:
来自pynzb import nzb_解析器
然后,只需调用“parse”方法,将xml字符串作为
参数:
文件=nzb_parser.parse('<;?XML…我的NZB文件在这里…<;/nzb>;')
这将返回一个“nzbfiles”列表供您使用。
nzbfile对象
===============
所有解析器都返回“nzbfile”对象,这些对象是
以下属性:
``海报`:
将文件发布到新闻组的用户的名称。
``日期``:
表示服务器第一次看到文件的时间。
``主题`:
用户将文件发布到新闻组时使用的主题。
``组`:
表示此文件所在新闻组的字符串列表
找到。
``段`:
一个“nzbsegment”对象列表,讨论从何处获取内容
此文件。
nzbsegment对象
==================
每个“nzbfile”都有一个“nzbsegment”对象列表,其中包括
信息
关于如何检索文件的一部分。以下是您可以在
``nzbsegment``对象:
``数字`:
文件列表中的段数。
``字节`:
段的大小,以字节为单位。
``消息ID``:
段的消息ID(用于检索完整内容)
示例
--------
在本例中,我们将获取一个ubuntu nzb并解析文件,打印出来
有关每个文件及其段的一些信息:
来自pynzb import nzb_解析器
从urllib2导入urlopen
获取一个ubuntu nzb示例
ubuntu_nzb=urlopen('http://media.eflorenzano.com/misc/sample-ubuntu-
nzb.nzb').rea区D()
将nzb解析为文件
文件=nzb_parser.parse(ubuntu_nzb)
打印出每个文件的主题和前两段消息ID
对于文件中的nzb_文件:
打印nzb_file.subject
对于NZB U文件中的段。段[:2]:
打印“”+段.消息ID
如果len(nzb_file.segments)>;2:
打印“…”
------------
nzb是一种基于xml的文件格式,用于从nntp(usenet)检索帖子
服务器。
由于nzb是基于xml的,因此构建一次性的解析器进行解析相对容易
nzb文件。本项目旨在整合众多一次性NZB
将解析器转换为一个简单的接口。
这个包包括三个实现:一个基于expat,另一个
基于
在elementtree上,以及基于lxml的最终实现。顺序
按兼容性顺序列出。expat版本应该在
所有版本的python>;2.0和lxml都适用于所有版本的python>;2.5,以及
lxml仅在安装了lxml时才起作用。
关于安装lxml的说明
---
虽然lxml不是必需的,但在
过去。我发现这组命令运行得很好:
静态设备=真正的轻松安装'lxml>;=2.2beta4'
static_deps=真正的sudo easy_install'lxml>;=2.2beta4'
API文档
----
访问默认分析器
============================
只需从pynzb包导入nzb_解析器。它是一个实例化的版本
您的系统可以支持的最快可用解析器。
其他分析器位置
======================
``expatnzbparser``:
可在“pynzb.expat_nzb”命名空间中找到。
`` etreenzbparser``:
在“pynzb.etree_nzb”命名空间中可用。
``lxmlnzbparser``:
可在“pynzb.lxml_nzb”命名空间中找到。
使用nzb解析器
====================
如果使用特定的解析器,比如“etreenzbparser”,则首先
必须实例化它:
nzb_parser=etreenzbparser()
否则,您只需导入系统的默认解析器:
来自pynzb import nzb_解析器
然后,只需调用“parse”方法,将xml字符串作为
参数:
文件=nzb_parser.parse('<;?XML…我的NZB文件在这里…<;/nzb>;')
这将返回一个“nzbfiles”列表供您使用。
nzbfile对象
===============
所有解析器都返回“nzbfile”对象,这些对象是
以下属性:
``海报`:
将文件发布到新闻组的用户的名称。
``日期``:
表示服务器第一次看到文件的时间。
``主题`:
用户将文件发布到新闻组时使用的主题。
``组`:
表示此文件所在新闻组的字符串列表
找到。
``段`:
一个“nzbsegment”对象列表,讨论从何处获取内容
此文件。
nzbsegment对象
==================
每个“nzbfile”都有一个“nzbsegment”对象列表,其中包括
信息
关于如何检索文件的一部分。以下是您可以在
``nzbsegment``对象:
``数字`:
文件列表中的段数。
``字节`:
段的大小,以字节为单位。
``消息ID``:
段的消息ID(用于检索完整内容)
示例
--------
在本例中,我们将获取一个ubuntu nzb并解析文件,打印出来
有关每个文件及其段的一些信息:
来自pynzb import nzb_解析器
从urllib2导入urlopen
获取一个ubuntu nzb示例
ubuntu_nzb=urlopen('http://media.eflorenzano.com/misc/sample-ubuntu-
nzb.nzb').rea区D()
将nzb解析为文件
文件=nzb_parser.parse(ubuntu_nzb)
打印出每个文件的主题和前两段消息ID
对于文件中的nzb_文件:
打印nzb_file.subject
对于NZB U文件中的段。段[:2]:
打印“”+段.消息ID
如果len(nzb_file.segments)>;2:
打印“…”