zoukankan      html  css  js  c++  java
  • scrapy中使用LinkExtractor提取链接

    le = LinkExtractor(restrict_css='ul.pager li.next')
    links = le.extract_links(response)
     
    使用LinkExtractor的过程:
    1. 导入LinkExtractor,它是在scrapy中linkextractors中
    2. 创建一个Linkextractor对象,使用一个或者多个构造器参数描述提取规则,这里传递给restrict_css参数一个CSS选择器表达式。它描述了下一页链接所在的区域(在li.next下)
    3. 调用LinkExtractor对象的extract_links方法传入一个response对象,这个方法一句创建对象的时候描述的的提取规则,在这个response对象的页面中提取链接,最终返回一个列表,其中的每一个元素都是个link对象,也就是提取到的链接
    4. 由于页面中的下一页链接只有一个,因此用links[0]获取link对象,link对象的url属性就是链接页面的绝对url地址(无须在调用response.urljoin方法),用它构造request对象并再次提交

    描述提取规则

      特殊情况:

        LinkExtractors构造器的所有的参数都是有默认值的,如果构造对象的时候不传入任何参数,就会自动提取页面中的所有的链接

      LinkExtractor构造器的各个参数:

      1. allow
        1. 正则表达式或者正则表达式列表,提取绝对url和正则表达式匹配的链接,如果为空就会提取所有的链接
      2. deny
        1. 正则表达式或者正则表达式列表,与allow相反,排除绝对url与正则表达式匹配的链接
      3. allow_domains
        1. 接受一个域名或者一个域名列表,提取到指定域的链接
      4. deny_domains
        1. 接受一个域名或者一个域名列表,与allow_domains相反,排除指定域名的链接
      5. restrict_xpaths
        1. 接收一个xpath表达式或者一个xpath表达式列表,提取xpath表达式中区域下的链接
      6. restrict_css
        1. 接受一个css选择器或者css选择器列表,提取css选择器中指定区域下的链接
      7. tags
        1. 接受一个标签(字符串)或者一个标签列表,提取指定标签内的链接
      8. attrs
        1. 接收一个属性(字符串)或者一个属性列表,提取指定区域内的链,默认是['href']
      9. process_value
        1. 接收一个形如func(value)的回调函数。如果传递了该函数,LinkExtractor将会调用这个回调函数对提取的每一个链接进行处理,回调函数正常情况下应该返回一个字符串(处理结果),想要抛弃所处理的连接的时候,返回None
  • 相关阅读:
    图像处理国际会议
    [2015更新]用Word2007写CSDN博客
    【超详细教程】使用Windows Live Writer 2012和Office Word 2013 发布文章到博客园全面总结
    奇异秀App:奇异秀秀奇异,用大头视频来拜年
    通俗讲解傅里叶级数
    LIBSVM的使用方法
    VC6.0的工程设置解读Project--Settings
    HOG:从理论到OpenCV实践
    如何在 Kaggle 首战中进入前 10%
    linux学习(2)
  • 原文地址:https://www.cnblogs.com/tulintao/p/11703096.html
Copyright © 2011-2022 走看看