在数据抓取的江湖里,Scrapy选择器就是你的屠龙宝刀。
什么是Scrapy选择器?
简单来说,Scrapy选择器是Scrapy框架中用于从网页中提取数据的工具。它基于强大的lxml库构建,提供了两种主要的数据提取方式:XPath和CSS选择器。
想象一下,你面对一堆杂乱无章的HTML代码,选择器就像是一把精准的镊子,能从中夹出你需要的任何数据。
Scrapy选择器实际上是基于parsel库的一个包装器,而parsel又在底层使用lxml库。这意味着你同时获得了lxml的速度和精度,以及Scrapy提供的便捷API。
选择器的基本使用
在Scrapy中,使用选择器非常简单。当你有一个响应对象时,可以直接调用它的xpath()和css()方法:
# 使用XPath选择器
response.xpath('//title/text()').get()
# 使用CSS选择器
response.css('title::text').get()
这两种方法都返回一个SelectorList对象,它像是包含多个选择器的列表,可以进一步进行嵌套选择。
提取数据的几种方式
get(): 返回第一个匹配元素的Unicode字符串,如果没有匹配项则返回Nonegetall(): 返回所有匹配元素的列表extract(): 老版本中与getall()功能相同的方法extract_first(): 老版本中与get()功能相同的方法
# 提取第一个匹配元素的文本
title = response.xpath('//title/text()').get()
# 提取所有匹配元素的文本
titles = response.xpath('//title/text()').getall()
# 当没有匹配元素时提供默认值
author = response.xpath('//div[@id="not-exists"]/text()').get(default='not-found')
XPath选择器:精准定位的利器
XPath是一门在XML和HTML文档中查找信息的语言,它通过路径表达式来选取节点。可以把XPath想象成文件系统的路径,比如/home/user/document,只不过我们是在HTML文档中导航。
XPath核心语法
| 表达式 |
描述 |
示例 |
|
|
选取此节点的所有子节点 |
|
玩转Scrapy选择器:XPath与CSS实战

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



