zoukankan      html  css  js  c++  java
  • XMLFeedSpider例子

     1 from scrapy import log
     2 from scrapy.contrib.spiders import XMLFeedSpider
     3 from myproject.items import TestItem
     4 
     5 class MySpider(XMLFeedSpider):
     6     name = 'example.com'
     7     allowed_domains = ['example.com']
     8     start_urls = ['http://www.example.com/feed.xml']
     9     iterator = 'iternodes' # This is actually unnecessary, since it's the default value
    10     itertag = 'item' #开始进行迭代的节点名称
    11 
    12     def parse_node(self, response, node):
    13         log.msg('Hi, this is a <%s> node!: %s' % (self.itertag, ''.join(node.extract())))
    14 
    15         item = TestItem()
    16         item['id'] = node.xpath('@id').extract()
    17         item['name'] = node.xpath('name').extract()
    18         item['description'] = node.xpath('description').extract()
    19         return item

    iterator

    用于确定使用哪个迭代器的string。可选项有:

    • 'iternodes' - 一个高性能的基于正则表达式的迭代器
    • 'html' - 使用 Selector 的迭代器。 需要注意的是该迭代器使用DOM进行分析,其需要将所有的DOM载入内存, 当数据量大的时候会产生问题。
    • 'xml' - 使用 Selector 的迭代器。 需要注意的是该迭代器使用DOM进行分析,其需要将所有的DOM载入内存, 当数据量大的时候会产生问题。

    默认值为 iternodes 。

  • 相关阅读:
    偶感
    数据库脚本开发中应注意的事项
    事务与隔离级别笔记
    Spring MVC学习笔记
    Eclipse环境配置与快捷命令
    告别2016,展望2017
    待总结项
    常见问题汇总
    我的工具箱
    精品文章收藏
  • 原文地址:https://www.cnblogs.com/programerlrc/p/4657192.html
Copyright © 2011-2022 走看看