Python爬虫基础教程(21)Python Scrapy爬虫框架之选择器:爬虫高手进阶:玩转Scrapy选择器XPath与CSS秘籍

玩转Scrapy选择器:XPath与CSS实战

在数据抓取的江湖里,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字符串,如果没有匹配项则返回None
  • getall(): 返回所有匹配元素的列表
  • 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核心语法

表达式

描述

示例

nodename

选取此节点的所有子节点

div 选取所有div子元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值