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

scrapy中使用LinkExtractor提取链接的更多相关文章

  1. scrapy之使用LinkExtractor提取链接

    一.概述: 在页面含有少量链接时,使用selector来提取信息就可以,但如果链接特别多时,就需要用LinkExtractor来提取. 二.LinkExtractor构造器的各个参数: 1.allow ...

  2. Scrapy 使用 LinkExtractor 提取链接和使用 Exporter 导出数据

    在爬取一个网站时,想要爬取的数据通常分布到多个页面中,每个页面包含一部分数据以及其他页面的链接,提取链接有使用 Selector 和使用 Linkextractor 两种方法. 1.使用Selecto ...

  3. scrapy的使用-LinkExtractor

    背景: 在爬取网站信息是需要获取特定标签下的某些内容,就需要获取这些标签下的链接,如果获取每一个,在通过这个获取它下面的信息,这样效率会很低,时间复杂度O(n^2),但如果先获取链接,再获取内容,则时 ...

  4. 使用Python中的HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies(二)(转)

    对搜索引擎.文件索引.文档转换.数据检索.站点备份或迁移等应用程序来说,经常用到对网页(即HTML文件)的解析处理.事实上,通过 Python语言提供的各种模块,我们无需借助Web服务器或者Web浏览 ...

  5. 【python】使用HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies

    一.从HTML文档中提取链接 模块HTMLParser,该模块使我们能够根据HTML文档中的标签来简洁.高效地解析HTML文档. 处理HTML文档的时候,我们常常需要从其中提取出所有的链接.使用HTM ...

  6. 在Scrapy中如何利用Xpath选择器从HTML中提取目标信息(两种方式)

    前一阵子我们介绍了如何启动Scrapy项目以及关于Scrapy爬虫的一些小技巧介绍,没来得及上车的小伙伴可以戳这些文章: 手把手教你如何新建scrapy爬虫框架的第一个项目(上) 手把手教你如何新建s ...

  7. Python中的HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies(二)

    对搜索引擎.文件索引.文档转换.数据检索.站点备份或迁移等应用程序来说,经常用到对网页(即HTML文件)的解析处理.事实上,通过 Python语言提供的各种模块,我们无需借助Web服务器或者Web浏览 ...

  8. Scrapy中的crawlspider

    crawlspider 能自动的获取url并提交请求 命令:scrapy genspider -t crawl spidername 'example.cn' 所导入的模块 # -*- coding: ...

  9. 爬虫07 /scrapy图片爬取、中间件、selenium在scrapy中的应用、CrawlSpider、分布式、增量式

    爬虫07 /scrapy图片爬取.中间件.selenium在scrapy中的应用.CrawlSpider.分布式.增量式 目录 爬虫07 /scrapy图片爬取.中间件.selenium在scrapy ...

随机推荐

  1. 使用当前平台的 gcc 编译内核头文件

    [arm@localhost tchain3.4.4]#cd ${KERNEL} [arm@localhost kernel]#tar xvfz linux­2.6.14.1.tar.gz [arm@ ...

  2. shell 命令 文件查看ls,复制cp,移动mv,查看文件内容cat more less,查看文件信息 file

    1. 查看文件 ls        ls -l  查看文件详细信息 ls -a 查看所有文件(包含隐藏文件) ls -lh  带单位显示文件大小 ls -i  查看文件的节点号(相当身份证唯一)  2 ...

  3. mysql 复制原理详解

    http://www.cnblogs.com/kristain/articles/4142970.html

  4. 利用DNSQuery 进行DNS查询

    #include <WinSock2.h> #include <WinDNS.h> #pragma comment (lib, "Dnsapi.lib") ...

  5. mysql 存储过程学习 汇总

    存储过程框架 DEMILITER $$ -- 重定义符 DROP PROCEDURE IF EXISTS store_procedure$$ -- 如果存在此名的存储过程,先删除 CREATE PRO ...

  6. PHP正则使用技巧1

    $pattern="/<div class=\"cover g-playicon\">(.*?)>/s"; 意思为抓取<div clas ...

  7. MFC int转CString

    方法一. int iVar = 7489; char szBuf[100]; _itoa(iVar, szBuf, 10); CString ss(szBuf); SetDlgItemText(IDC ...

  8. 20175323《Java程序设计》第二周学习总结

    一.教材学习内容总结 标识符第一个字符不能是数字且区分大小写数据类型转换时只允许把精度低的给精度高的,否则必须强制转换输入数据语法 Scanner reader = new Scanner(Syste ...

  9. linux下怎么安装Go开发环境?linux部署golang

    linux下怎么安装Go开发环境?linux部署golang  0.请自行安装SSH远程工具 1.  SSH远程登录你的linux服务器 2.   yum install mercurial安装 me ...

  10. VS2010-MFC(常用控件:树形控件Tree Control 上)

    转自:http://www.jizhuomi.com/software/200.html 前面两节讲了列表视图控件List Control,这一节开始介绍一种特殊的列表--树形控件Tree Contr ...