pynzb是一个用于解析NZB文件的统一API,包括几个具体的实现
项目描述
简介
------------
NZB是一种基于XML的文件格式,用于从NNTP(Usenet)服务器检索帖子。
由于NZB是基于XML的,因此相对容易构建一次性的解析器来解析NZB文件。该项目试图将许多一次性的NZB解析器合并为一个简单的接口。
此包包括三种实现:一种是基于expat的,另一种是基于ElementTree的,最后一种是基于lxml的实现。它们的顺序是按照兼容性排列的。expat版本应该在所有Python > 2.0的版本上工作,lxml版本将在所有 > 2.5的版本上工作,而lxml版本将仅在安装了lxml的情况下才能工作。
关于安装lxml的注意事项
虽然lxml不是必需的,但我在过去安装lxml时遇到了困难。我发现以下命令可以完美工作:
STATIC_DEPS=true easy_install 'lxml>=2.2beta4'
-------------------------
STATIC_DEPS=true sudo easy_install 'lxml>=2.2beta4'
API文档
访问默认解析器
-----------------
简单地从pynzb包中导入nzb_parser。它是系统可以支持的最快的解析器的实例化版本。
============================
其他解析器位置
======================
``ExpatNZBParser``
在``pynzb.expat_nzb``命名空间中可用。
``ETreeNZBParser``
在``pynzb.etree_nzb``命名空间中可用。
====================
如果您正在使用特定的解析器,如“ETreeNZBParser”,您首先需要
实例化它:
nzb_parser = ETreeNZBParser()
否则,您可以直接导入您系统默认的解析器:
from pynzb import nzb_parser
然后,只需调用“parse”方法,并将xml字符串作为唯一
参数传递:
files = nzb_parser.parse('<?xml ... my nzb file here ... </nzb>')
这将返回一个“NZBFiles”列表供您使用。
NZBFile对象
===============
所有解析器都返回“NZBFile”对象,这些对象具有以下属性
``poster``
将文件发布到新闻组的用户的名称。
``date``
服务器首次看到文件的“datetime.date”表示形式。
``subject``
用户将文件发布到新闻组时使用的主题。
``groups``
一个字符串列表,表示可能包含此文件的新闻组。
``segments``
一个“NZBSegment”对象列表,讨论如何获取此文件的内容。
``segments``
一个“NZBSegment”对象列表,其中包含有关如何检索文件一部分的信息。
``segments``
NZBSegment对象
==================
每个“NZBFile”都有一个“NZBSegment”对象列表,其中包含
信息
有关如何检索文件的一部分。下面是一个“NZBSegment”对象上的信息
``number``
列表中该段落的编号。
``bytes``
段的大小,以字节为单位。
``message_id``
段落的Message-ID(用于检索完整内容)。
``message_id``
示例
--------
在这个示例中,我们将抓取一个Ubuntu NZB并解析文件,打印出
有关每个文件及其段的信息:
from pynzb import nzb_parser
from urllib2 import urlopen
# 获取一个示例Ubuntu NZB
ubuntu_nzb = urlopen('http://media.eflorenzano.com/misc/sample-ubuntu-
nzb.nzb').read()
# 将NZB解析为文件
files = nzb_parser.parse(ubuntu_nzb)
# 打印出每个文件的标题和前两个段落的message_id
for nzb_file in files
print nzb_file.subject
for segment in nzb_file.segments[:2]
print ' ' + segment.message_id
if len(nzb_file.segments) > 2
print ' ...'
------------
NZB是一种基于XML的文件格式,用于从NNTP(Usenet)服务器检索帖子。
由于NZB是基于XML的,因此相对容易构建一次性的解析器来解析NZB文件。该项目试图将许多一次性的NZB解析器合并为一个简单的接口。
此包包括三种实现:一种是基于expat的,另一种是基于ElementTree的,最后一种是基于lxml的实现。它们的顺序是按照兼容性排列的。expat版本应该在所有Python > 2.0的版本上工作,lxml版本将在所有 > 2.5的版本上工作,而lxml版本将仅在安装了lxml的情况下才能工作。
关于安装lxml的注意事项
虽然lxml不是必需的,但我在过去安装lxml时遇到了困难。我发现以下命令可以完美工作:
STATIC_DEPS=true easy_install 'lxml>=2.2beta4'
-------------------------
STATIC_DEPS=true sudo easy_install 'lxml>=2.2beta4'
API文档
访问默认解析器
-----------------
简单地从pynzb包中导入nzb_parser。它是系统可以支持的最快的解析器的实例化版本。
============================
其他解析器位置
======================
``ExpatNZBParser``
在``pynzb.expat_nzb``命名空间中可用。
``ETreeNZBParser``
在``pynzb.etree_nzb``命名空间中可用。
====================
如果您正在使用特定的解析器,如“ETreeNZBParser”,您首先需要
实例化它:
nzb_parser = ETreeNZBParser()
否则,您可以直接导入您系统默认的解析器:
from pynzb import nzb_parser
然后,只需调用“parse”方法,并将xml字符串作为唯一
参数传递:
files = nzb_parser.parse('<?xml ... my nzb file here ... </nzb>')
这将返回一个“NZBFiles”列表供您使用。
NZBFile对象
===============
所有解析器都返回“NZBFile”对象,这些对象具有以下属性
``poster``
将文件发布到新闻组的用户的名称。
``date``
服务器首次看到文件的“datetime.date”表示形式。
``subject``
用户将文件发布到新闻组时使用的主题。
``groups``
一个字符串列表,表示可能包含此文件的新闻组。
``segments``
一个“NZBSegment”对象列表,讨论如何获取此文件的内容。
``segments``
一个“NZBSegment”对象列表,其中包含有关如何检索文件一部分的信息。
``segments``
NZBSegment对象
==================
每个“NZBFile”都有一个“NZBSegment”对象列表,其中包含
信息
有关如何检索文件的一部分。下面是一个“NZBSegment”对象上的信息
``number``
列表中该段落的编号。
``bytes``
段的大小,以字节为单位。
``message_id``
段落的Message-ID(用于检索完整内容)。
``message_id``
示例
--------
在这个示例中,我们将抓取一个Ubuntu NZB并解析文件,打印出
有关每个文件及其段的信息:
from pynzb import nzb_parser
from urllib2 import urlopen
# 获取一个示例Ubuntu NZB
ubuntu_nzb = urlopen('http://media.eflorenzano.com/misc/sample-ubuntu-
nzb.nzb').read()
# 将NZB解析为文件
files = nzb_parser.parse(ubuntu_nzb)
# 打印出每个文件的标题和前两个段落的message_id
for nzb_file in files
print nzb_file.subject
for segment in nzb_file.segments[:2]
print ' ' + segment.message_id
if len(nzb_file.segments) > 2
print ' ...'
项目详情
关闭
pynzb-0.1.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0735b3889a1174bbb65418ee503629d3f5e4a63f04b16f46ffba18253ec3ef17 |
|
MD5 | 63c74a36348ac28aa99732dcb8be8c59 |
|
BLAKE2b-256 | b190b71ca66e2fee3f46281b3ecc853abe407a5ecd0cb4898af5bab48af63590 |