scrapy框架(二)

一、scrapy 选择器

概述:

Scrapy提供基于lxml库的解析机制,它们被称为选择器。

因为,它们“选择”由XPath或CSS表达式指定的HTML文档的某部分。

Scarpy选择器的API非常小,且非常简单。

 

Scrapy选择器是通过scrapy.Selector类,通过传递文本或者TextResonse对象构造的实例。

选择器Selector对象使用

 选择器提供2个方法来提取标签
 
 xpath()   # 基于xpath的语法规则
 css() # 基于css选择器的语法规则
 快捷方式
 selector = response.xpath('')
 selector = response.css('')
 它们返回的是选择器对象的列表
 提取文本:
 selector.extract() 返回文本列表
 selector.extract_first() 返回第一个selector的文本,没有返回None;可以设置default
 
 有时候我们获取标签需要多次调用选择方法(.xpath()或.css()
 response.css('img').xpath('@src')
 
 Selector还有一个.re()方法使用正则表达式提取数据的方法。它返回字符串。
 它一般使用在xpath(),css()方法之后,用来过滤文本数据。
 re_first()用来返回第一个匹配的字符串。
 例如:
 response.xpath('//a[contains(@href, "image")]/text()').re(r'Name:\s*(.*)')
 contains() 模糊匹配

 

二、scrapy shell 调试工具

简介:用来调试Scrapy 项目代码的 命令行工具。

启动 shell
 启动Scrapy shell的命令语法格式如下:
 scrapy shell [option] [url|file]
 
 注意:分析本地文件是一定要带上路径,scrapy shell默认当作url
shell 的使用
 Scrapy shell 本质上就是个普通的python shell
 只不过提供了一些需要使用的对象,快捷方法便于我们调试。
 
 快捷方法:
 shelp()
 fetch(url[,redirect=True])
 fetch(request)
 view(response)
 scrapy 对象:
 crawler
 spider
 request
 response
 settings
 

 

三、scrapy.Spider

Spider类的属性、方法描述
name属性 spider的名称
start_urls属性 蜘蛛开始爬取的url列表
customer_settings属性 自定义设置
start_requests()方法 开始前请求
parse(self, response) 默认回调函数
from_crawler 创建spider的类方法