scrapy中使用LinkExtractor提取链接
- 导入LinkExtractor,它是在scrapy中linkextractors中
- 创建一个Linkextractor对象,使用一个或者多个构造器参数描述提取规则,这里传递给restrict_css参数一个CSS选择器表达式。它描述了下一页链接所在的区域(在li.next下)
- 调用LinkExtractor对象的extract_links方法传入一个response对象,这个方法一句创建对象的时候描述的的提取规则,在这个response对象的页面中提取链接,最终返回一个列表,其中的每一个元素都是个link对象,也就是提取到的链接
- 由于页面中的下一页链接只有一个,因此用links[0]获取link对象,link对象的url属性就是链接页面的绝对url地址(无须在调用response.urljoin方法),用它构造request对象并再次提交
描述提取规则
特殊情况:
LinkExtractors构造器的所有的参数都是有默认值的,如果构造对象的时候不传入任何参数,就会自动提取页面中的所有的链接
LinkExtractor构造器的各个参数:
- allow
- 正则表达式或者正则表达式列表,提取绝对url和正则表达式匹配的链接,如果为空就会提取所有的链接
- deny
- 正则表达式或者正则表达式列表,与allow相反,排除绝对url与正则表达式匹配的链接
- allow_domains
- 接受一个域名或者一个域名列表,提取到指定域的链接
- deny_domains
- 接受一个域名或者一个域名列表,与allow_domains相反,排除指定域名的链接
- restrict_xpaths
- 接收一个xpath表达式或者一个xpath表达式列表,提取xpath表达式中区域下的链接
- restrict_css
- 接受一个css选择器或者css选择器列表,提取css选择器中指定区域下的链接
- tags
- 接受一个标签(字符串)或者一个标签列表,提取指定标签内的链接
- attrs
- 接收一个属性(字符串)或者一个属性列表,提取指定区域内的链,默认是['href']
- process_value
- 接收一个形如func(value)的回调函数。如果传递了该函数,LinkExtractor将会调用这个回调函数对提取的每一个链接进行处理,回调函数正常情况下应该返回一个字符串(处理结果),想要抛弃所处理的连接的时候,返回None
- allow
scrapy中使用LinkExtractor提取链接的更多相关文章
- scrapy之使用LinkExtractor提取链接
一.概述: 在页面含有少量链接时,使用selector来提取信息就可以,但如果链接特别多时,就需要用LinkExtractor来提取. 二.LinkExtractor构造器的各个参数: 1.allow ...
- Scrapy 使用 LinkExtractor 提取链接和使用 Exporter 导出数据
在爬取一个网站时,想要爬取的数据通常分布到多个页面中,每个页面包含一部分数据以及其他页面的链接,提取链接有使用 Selector 和使用 Linkextractor 两种方法. 1.使用Selecto ...
- scrapy的使用-LinkExtractor
背景: 在爬取网站信息是需要获取特定标签下的某些内容,就需要获取这些标签下的链接,如果获取每一个,在通过这个获取它下面的信息,这样效率会很低,时间复杂度O(n^2),但如果先获取链接,再获取内容,则时 ...
- 使用Python中的HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies(二)(转)
对搜索引擎.文件索引.文档转换.数据检索.站点备份或迁移等应用程序来说,经常用到对网页(即HTML文件)的解析处理.事实上,通过 Python语言提供的各种模块,我们无需借助Web服务器或者Web浏览 ...
- 【python】使用HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies
一.从HTML文档中提取链接 模块HTMLParser,该模块使我们能够根据HTML文档中的标签来简洁.高效地解析HTML文档. 处理HTML文档的时候,我们常常需要从其中提取出所有的链接.使用HTM ...
- 在Scrapy中如何利用Xpath选择器从HTML中提取目标信息(两种方式)
前一阵子我们介绍了如何启动Scrapy项目以及关于Scrapy爬虫的一些小技巧介绍,没来得及上车的小伙伴可以戳这些文章: 手把手教你如何新建scrapy爬虫框架的第一个项目(上) 手把手教你如何新建s ...
- Python中的HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies(二)
对搜索引擎.文件索引.文档转换.数据检索.站点备份或迁移等应用程序来说,经常用到对网页(即HTML文件)的解析处理.事实上,通过 Python语言提供的各种模块,我们无需借助Web服务器或者Web浏览 ...
- Scrapy中的crawlspider
crawlspider 能自动的获取url并提交请求 命令:scrapy genspider -t crawl spidername 'example.cn' 所导入的模块 # -*- coding: ...
- 爬虫07 /scrapy图片爬取、中间件、selenium在scrapy中的应用、CrawlSpider、分布式、增量式
爬虫07 /scrapy图片爬取.中间件.selenium在scrapy中的应用.CrawlSpider.分布式.增量式 目录 爬虫07 /scrapy图片爬取.中间件.selenium在scrapy ...
随机推荐
- MapReduce1.0的缺陷
- 新建Application 报错android.app.Application cannot be cast
我在开发APP的时候重新使用了一个类,继承了android.app.Application.但是在运行的时候提示java.lang.ClassCastException: android.app.Ap ...
- AM8互联设置方法
Am8互联设置 这个只需要部署在一个总部的AM8的 Oiorg所在机器上就可以 环境: Windows 2012 or windows 2008,IIS ,.Net4 AM8 数据库必须升级到:201 ...
- Navicat Premium下载、安装、破解
Navicat Premium 是一套数据库管理工具,让你以单一程序同時连接到 MySQL.MariaDB.SQL Server.SQLite.Oracle 和 PostgreSQL 数据库. 此外, ...
- 深入解读阿里云数据库POLARDB核心功能会话读一致性
POLARDB架构 我们知道,POLARDB是一个由多个节点构成的数据库集群,一个主节点,多个读节点.对外默认提供两个地址,一个是集群地址,一个是主地址,推荐使用集群地址,因为它具备读写分离功能可以把 ...
- html5 js 监听网络在线与离线
<!doctype html> <html> <head> <meta http-equiv="content-type" content ...
- Hadoop 平台搭建
一.在Linux中安装JDK并配置环境变量 输入javac 查看是否已安装java环境如果没有安装 sudo apt-get install openjdk-7-jdk再次检测 javac修改配置参数 ...
- System.Web.Mvc.HttpPostAttribute.cs
ylbtech-System.Web.Mvc.HttpPostAttribute.cs 1.程序集 System.Web.Mvc, Version=5.2.3.0, Culture=neutral, ...
- Python 字符串_python 字符串截取_python 字符串替换_python 字符串连接
Python 字符串_python 字符串截取_python 字符串替换_python 字符串连接 字符串是Python中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符 ...
- day4:Python列表(list)元组( tuple)字典(dict)
列表----list 列表:中括号,每个元素用‘,’分割,列表里面也可以嵌套列表,列表里面可以包含数字,字符串,布尔值等,也就是元素的集合 例:test = [2,4,'sun','yao'] #索引 ...