MiracleZhao 2019-12-22
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 项目代码的 命令行工具。
启动Scrapy shell的命令语法格式如下: scrapy shell [option] [url|file] ? 注意:分析本地文件是一定要带上路径,scrapy shell默认当作url
Scrapy shell 本质上就是个普通的python shell 只不过提供了一些需要使用的对象,快捷方法便于我们调试。 ? 快捷方法: shelp() fetch(url[,redirect=True]) fetch(request) view(response) scrapy 对象: crawler spider request response settings ?
Spider类的属性、方法 | 描述 |
---|---|
name属性 | spider的名称 |
start_urls属性 | 蜘蛛开始爬取的url列表 |
customer_settings属性 | 自定义设置 |
start_requests()方法 | 开始前请求 |
parse(self, response) | 默认回调函数 |
from_crawler | 创建spider的类方法 |