python css selector_Python爬虫之Selector的用法

引言

我们之前介绍了Beautiful Soup、pyquery以及正则表达式来提取网页数据,这确实十分方便。而Scrapy还提供了自己的数据提取方法,即Selector(选择器)。Selector是基于lxml来构建的,支持Xpath选择器、CSS选择器以及正则表达式,功能全面,解析速度和准确度非常高。本节我们将介绍Selector的用法。

直接使用

Selector是一个可以独立使用的模块。我们可以直接利用Selector这个类来构建一个选择器对象,然后调用它的相关方法如xpath( )、css( )等来提取数据。

例如,针对一段HTML代码,我们可以用如下方式构建Selector对象来提取数据:

运行结果如下:

我们在这里没有在Scrapy框架中运行,而是把Scrapy中的Selector单独拿出来使用了,构建的时候传入text参数,就生成了一个Selector选择器对象,然后就可以像前面我们所用的Scrapy中的解析方式一样,调用xpath( )、css( )等方法来提取了。

在这里我们查找的是源代码中的title中的文本,在Xpath选择器最后加text( )方法就可以实现文本的提取了。

以上内容就是Selector的直接使用方法。同Beautiful Soup等库类似,Selector其实也是强大的网页解析库。如果方便的话,我们也可以在其他项目中直接使用Selector来提取数据。

接下来,我们用实例来详细讲解Selector的用法。

Scrapy shell

由于Selector主要是与Scrapy结合使用,如Scrapy的回调函数中的参数response直接调用xpath( )或者css( )方法来提取数据,所以在这里我们借助Scrapy shell来模拟Scrapy请求的过程,来讲解相关的提取方法。

我们用官方文档的一个样例界面来作为我们的演示:

接着我们就可以开启Scrapy shell,在命令行输入如下命令:

scrapy shell + 网址

这样我们就进入到了scrapy shell模式。这个过程其实是,Scrapy发起了一次请求,请求的URL就是刚才命令行下输入的URL,然后把一些可操作的变量传递给我们,如request、response等,如下所示:

我们可以在命令行模型下输入命令调用对象的一些操作方法,回车之后实时显示结果。这与Python命令行交互模式是类似的。

接下来,演示的实例都将页面的源码作为分析目标,页面源码如下所示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值