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:
打印“…”

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何使用java中的以下详细信息连接到LDAP服务器?   java如何配置Stanford QNMinimizer以获得与scipy类似的结果。优化最小化LBFGSB   java在安卓中使用JSON Web服务   mongodb如何使用MongoOption从Java连接副本集   java此代码不会显示矩形,但它应该   java是否可以在executor服务的所有线程都在处理任务时等待主线程   多线程Java多线程原子引用分配   Java中容器内的swing容器   java Android构建错误:make:**[Build/core/main.mk:21:run_soong_ui]错误1   JavaXMLSpy块WebLogic10.3.2   java代码与小程序不匹配   arrayadapter和nullpointer错误的java意外行为   mysql中按java数组计算列中的行数   Spring OAuth2中的java HMACSHA512不工作   JAVA马绍尔群岛共和国。连接异常   安卓 Java事件处理帮助(通知与事件对象)   用于清理或修复pom的工具。Java Maven项目中的xml   java内容提供者与活动   现有类的子类的Java ClassNotFoundException