笨鸟编程-零基础入门Pyhton教程

 找回密码
 立即注册

蜘蛛

发布者: 笨鸟自学网



XMLFeedSpider

classscrapy.spiders.XMLFeedSpider[源代码]

XMLFeedSpider是为解析XML提要而设计的,它通过使用特定的节点名对这些提要进行迭代。迭代器可以从以下选项中选择: iternodes , xml 和 html . 建议使用 iternodes 由于性能原因,迭代器 xml 和 html 迭代器一次生成整个DOM以便解析它。然而,使用 html 因为迭代器在分析带有错误标记的XML时可能很有用。

要设置迭代器和标记名,必须定义以下类属性:

iterator

定义要使用的迭代器的字符串。它可以是:

  • 'iternodes' -基于正则表达式的快速迭代器

  • 'html' -使用以下功能的迭代器 Selector 。请记住,这使用DOM解析,并且必须将所有DOM加载到内存中,这对于大型提要来说可能是个问题

  • 'xml' -使用以下功能的迭代器 Selector 。请记住,这使用DOM解析,并且必须将所有DOM加载到内存中,这对于大型提要来说可能是个问题

默认为: 'iternodes' .

itertag

具有要迭代的节点(或元素)名称的字符串。例子::

itertag = 'product'
namespaces

一份名单 (prefix, uri) 元组,用于定义该文档中可用的名称空间,该文档将使用该爬行器进行处理。这个 prefix 和 uri 属性自动注册命名空间。 register_namespace() 方法。

然后,可以在 itertag 属性。

例子::

class YourSpider(XMLFeedSpider):

    namespaces = [('n', 'http://www.sitemaps.org/schemas/sitemap/0.9')]
    itertag = 'n:url'
    # ...

除了这些新属性外,该爬行器还具有以下可重写的方法:

adapt_response(response)[源代码]

一种方法,当响应从蜘蛛中间件到达时,在蜘蛛开始解析它之前,立即接收响应。它可以用于在解析响应体之前对其进行修改。此方法接收响应并返回响应(可以是相同的或另一个响应)。

parse_node(responseselector)[源代码]

将为与提供的标记名匹配的节点调用此方法 (itertag )。接收响应,并引发 Selector 对于每个节点。重写此方法是必需的。否则,你的蜘蛛就不会起作用了。此方法必须返回一个 item object ,a Request 对象,或包含其中任何一个的迭代数。

process_results(responseresults)[源代码]

这个方法是为spider返回的每个结果(项或请求)调用的,它用于在将结果返回到框架核心之前执行所需的任何最后一次处理,例如设置项id。它接收结果列表和产生这些结果的响应。它必须返回结果列表(项或请求)。

警告

由于其内部实现,在编写时必须显式设置新请求的回调 XMLFeedSpider -基于蜘蛛;否则会发生意外行为。


上一篇:命令行工具下一篇:选择器

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2024-11-23 16:16 , Processed in 0.016528 second(s), 17 queries .

© 2001-2020

返回顶部