Python中super的用法

Python中super的用法

super是用来解决多重继承问题,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序,重复调用等, 重点:保持一致

普通继承


class FooParent(object):
   def __init__(self):
       self.parent = 'I\'m the parent.'
       print 'Parent'
   
   def bar(self,message):
       print message, 'from Parent'
       
class FooChild(FooParent):
   def __init__(self):
       FooParent.__init__(self)
       print 'Child'
       
   def bar(self,message):
       FooParent.bar(self,message)
       print 'Child bar function.'
       print self.parent
       
if __name__=='__main__':
   fooChild = FooChild()
   fooChild.bar('HelloWorld') 

super继承

class FooParent(object):
    def __init__(self):
        self.parent = 'I\'m the parent.'
        print 'Parent'
    
    def bar(self,message):
        print message,'from Parent'

class FooChild(FooParent):
    def __init__(self):
        super(FooChild,self).__init__()
        print 'Child'
        
    def bar(self,message):
        super(FooChild, self).bar(message)
        print 'Child bar fuction'
        print self.parent

if __name__ == '__main__':
    fooChild = FooChild()
    fooChild.bar('HelloWorld')

运行结果相同

itemLoader的使用

通过item直接清洗数据

思路:

1.创建itemLoad对象

2.通过该对象的add_css或者add_xpath、add_value方法将 解析语法装入item_loader

3.在item.py中的field()中调用函数用来清洗,处理数据

4.artical_item=item_load_item()调用这个对象的方法,然后写入到item中

LinkExtractor 链接提取器

LinkExtractor唯一的目的是从scrapy.http.Response最终跟随的网页(对象)提取链接的对象
通过scrapy,可以创建自定义的链接提取器scrapy.linkextractors import LinkExtractor

参数

  • allow(正则表达式(或的列表)) 一个单一的正则表达式(或正则表达列表),(绝对)urls必须匹配才能提取。如果没有给出(或为空),它将匹配所有的链接
  • deny(正则表达式或正则表达式列表)一个正则表达式urls必须匹配才能排除,优先于allow参数,如果没有给出,它不会排除任何链接
  • allow_domains(str或List) 单个值或包含将被考虑用于提取链接的域的字符串列表
  • deny_domains(str list) 单个值包含不会被考虑用于提取链接的域的字符串列表
  • deny_extensions(list) - 包含在提取链接时应该忽略的扩展的单个值或字符串列表。如果没有给出,它将默认为IGNORED_EXTENSIONS在scrapy.linkextractors包中定义的 列表 。
  • restrict_xpaths(str或list) - 是一个XPath(或XPath的列表),它定义响应中应从中提取链接的区域。如果给出,只有那些XPath选择的文本将被扫描链接。参见下面的例子。
  • restrict_css(str或list) - 一个CSS选择器(或选择器列表),用于定义响应中应提取链接的区域。有相同的行为restrict_xpaths。
    标签(str或list) - 标签或在提取链接时要考虑的标签列表。默认为。(‘a’, ‘area’)
  • attrs(list) - 在查找要提取的链接时应该考虑的属性或属性列表(仅适用于参数中指定的那些标签tags )。默认为(‘href’,)
  • canonicalize(boolean) - 规范化每个提取的url(使用w3lib.url.canonicalize_url)。默认为True。
  • unique(boolean) - 是否应对提取的链接应用重复过滤。
  • process_value(callable) -
    接收从标签提取的每个值和扫描的属性并且可以修改值并返回新值的函数,或者返回None以完全忽略链接。如果没有给出,process_value默认为。lambda x: x
Item Loader来填充Item

item loaders提供了一种便捷的方式填充抓取到的items。虽然items可以使用自带的类字典形式API填充,但是items loaders提供了更便利的api,可以分析数据并对item进行赋值

items 提供保存抓取的容器,而item loaders提供的是填充容器的机制

使用item loaders,必须先将它实例化,可以使用类似字典的对象进行实例化,或者不使用对象也可以,当不用对象的时候,item会自动使用itemloaders.default_item_class属性中指定item类在item loaders constructor中实例化
然后开始收集数值到item loaders,通常使用selectors,可以在同一个item field里面添加多个数值,item loaders将知道如何合适的处理函数来添加这些数值

TakeFirst 返回第一个非空(non-null/non-empty)值,常用于单值字段的输出处理器。无参数
TextRank 自动文摘

自动文摘的方法主要有两种:Extraction和Abstraction。其中Extracation是抽取式自动文摘方法,通过提取文档中已经存在的关键词。句子形成摘要Abstraction是生产自动文摘方法,通过建立抽象的语意表示,使用自然语言生产技术,形成摘要,由于生成式自动摘要方法需要复杂的自然语言理解和生成技术支持,应用领域受限。

目前主要方法有:

  • 基于统计:统计词频,位置等信心,计算句子权值,再简选权值高的句子作为文摘,特点:简单易用,但对词句中的使用大多仅停留在表面信息
  • 基于图模型:构建拓扑结构图,对词句进行排序。例如:TextRank/LexRank
  • 基于潜在语义:使用主体模型,挖掘词句隐藏信息。例如采用LDA,HMM
  • 基于整数规划:将文摘问题转为整数线性规划,求全局最优解
TextRank算法(略)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值