关于Python3爬虫中选择器的用法

  介绍

小编给大家分享一下关于Python3爬虫中选择器的用法,相信大部分人都还不怎么了解,因此分享这篇文章给大家学习,希望大家阅读完这篇文章后大所收获、下面让我们一起去学习方法吧!

<强>选择器的用法

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

本节将介绍选择器的用法。

<强> 1。直接使用

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

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

得到scrapy  import 选择器   时间=body  & # 39; & lt; html> & lt; head> & lt; title> Hello  World & lt;/head> & lt; body> & lt;/body> & lt;/html> & # 39;   时间=selector 选择器(文本=身体)   时间=title  selector.xpath(& # 39;//标题/text () & # 39;) .extract_first ()   打印(标题)

运行结果:

Hello 世界

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

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

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

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

<强> 2。Scrapy壳

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

我们用官方文档的一个样例页面来做演示:http://doc.scrapy.org/en/latest/_static/selectors-sample1.html。

开启Scrapy壳,在命令行输入如下命令:

scrapy  shell  http://doc.scrapy.org/en/latest/_static/selectors-sample1.html

我们就进入到Scrapy壳模式。这个过程其实是,Scrapy发起了一次请求,请求的URL就是刚才命令行下输入的URL,然后把一些可操作的变量传递给我们,如请求、响应等,如图13比5所示。

关于Python3爬虫中选择器的用法

图13比5 Scrapy壳

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

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

& lt; html>   ,& lt; head>   & lt;才能base  https://www.yisu.com/zixun/href=" http://example.com/"/>   <标题>示例网站   头   身体<>         

<强> 3。XPath选择器

进入Scrapy壳之后,我们将主要操作回应这个变量来进行解析。因为我们解析的是HTML代码,选择器将自动使用HTML语法来分析。

反应有一个属性选择器,我们调用响应。选择器返回的内容就相当于用响应的文本构造了一个选择器对象。通过这个选择器对象我们可以调用解析方法如xpath (), css()等,通过向方法传入xpath或css选择器参数就可以实现信息的提取。

我们用一个实例感受一下,如下所示:

在祝辞祝辞,result =, response.selector.xpath(& # 39;//一个# 39;)   在祝辞祝辞,结果   [& lt; Selector  xpath=& # 39;//一个# 39;,data=https://www.yisu.com/zixun/

关于Python3爬虫中选择器的用法