爬虫之Xpath的使用

什么是Xpath:

Xapth是一门在HTML文档、XML文档中查找信息的语言,可以用来在HTML/XML文档中对元素和属性进行遍历。

Xpath语法:

表达式 描述
nodename 选择此节点的所有节点
/ 从根节点选取
// 从当前节点开始选取,不考虑位置
. 选取当前节点
.. 选取当前节点的父节点
@ 选取属性

 

 

 

 

 

 

 

 

学习重点:

  1. a/text()                                                                 获取a标签下的文本内容
  2. /html/head/link/@href                                          获取/html/head/link标签下的href属性
  3. //div[@class="tags"]/meta/@content                   //表示从HTML中的任意位置开始

下面讲解一个使用Xpath简单的爬虫例子:

http://quotes.toscrape.com/

第一步:确定要爬取的内容(这里我要爬取文本、作者、标签)

爬虫之Xpath的使用

 第二步:元素定位(鼠标右键->检查)

在div标签上移动鼠标,看到蓝色区域覆盖的内容就在此标签内,我们要取的内容就在此标签里面。

爬虫之Xpath的使用

然后,逐层打开div标签,用同样的方式定位到我们要爬取的text、author 、tags

text_list=html.xpath('//span[@class="text"]/text()')              用text()获取文本内容

爬虫之Xpath的使用

author_list=html.xpath('//span/small[@class="author"]/text()')               获取作者

爬虫之Xpath的使用
tags_list=html.xpath('//div[@class="tags"]/meta/@content')          用@获取content属性

爬虫之Xpath的使用

第三步:写代码爬取text、author、tags 

注:确保已经导入requests、lxml        我用的是Anaconda3自带第三方库

      在保存数据时先创建文件夹

  • 请求下载quotes的整体数据

爬虫之Xpath的使用

  • 抽取想要的数据 文本、作者、标签(这里看着很乱,所以需要进一步对文本、作者、标签进行匹配)

爬虫之Xpath的使用

  • 将文本作者标签匹配、下载数据 、保存数据 

爬虫之Xpath的使用

现在,我们可以去quotes文件夹看爬取的数据。

爬虫之Xpath的使用