您的位置:首页 > 其它

爬虫框架Scrapy学习记录II--Selector学习

2017-04-02 00:15 253 查看

Selectors (选择器)

当抓取网页时,一般都是从HTML源码中提取数据。

BeautifulSoup—网页分析库,缺点慢

lxml,基于ElementTree的XML解析库

Scrapy 拥有自己一套机制。即为选择器(selectors),通过特定的 XPathCSS 表达式来选择HTML文件中的某个部分

XPath 是一门用来在XML文件中选择节点的语言,也可以用在HTML上。 CSS 是一门将HTML文档样式化的语言。选择器由它定义,并与特定的HTML元素的样式相关连。

example :

/html/head/title: 选择HTML文档元素下面的 标签。

/html/head/title/text(): 选择前面提到的 元素下面的文本内容

//td: 选择所有 元素

//div[@class=”mine”]: 选择所有包含 class=”mine” 属性的div 标签元素

路径的意义 :

nodename : 选取此节点的所有子节点。

/ : 从根节点选取。

// : 匹配所选择的当前节点来选择文档中的节点,而不考虑它们的位置。

. : 选取当前节点。

.. : 选取当前节点的父节点。

@ : 选取属性。

Scrapy 选择器构建于 lxml 库之上,这意味着它们在速度和解析准确性上非常相似。

大量实例:

response.css(‘title’) #选取title元素完整内容

response.css(‘title::text’) #只选取title元素的文本

response.css(‘title::text’).re(r’(\w+) to (\w+)’) #搭配正则选取

response.css(‘img’).xpath(‘@src’).extract() #css和xpath搭配使用 选取img元素中src属性的值

response.xpath(‘//base/@href’).extract() #选取base元素中的href属性

response.css(‘base::attr(href)’).extract() #选取base元素中的href属性

response.css(‘img::attr(src)’).extract() #获得图片的下载地址

response.xpath(‘//a[contains(@href, “image”)]/text()’).re(r’Name:\s*(.*)’) #选取a元素中属性为href 包含image文字的文本

response.css(“span.text::text”).extract_first() #选取span类名字为text的文本

response.css(‘div.tags a.tag::text’).extract() #选取类名字为tags的div元素 下类名字为tag的a元素的文本信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: