爬虫之Xpath的使用
什么是Xpath:
Xapth是一门在HTML文档、XML文档中查找信息的语言,可以用来在HTML/XML文档中对元素和属性进行遍历。
Xpath语法:
表达式 | 描述 |
nodename | 选择此节点的所有节点 |
/ | 从根节点选取 |
// | 从当前节点开始选取,不考虑位置 |
. | 选取当前节点 |
.. | 选取当前节点的父节点 |
@ | 选取属性 |
学习重点:
- a/text() 获取a标签下的文本内容
- /html/head/link/@href 获取/html/head/link标签下的href属性
- //div[@class="tags"]/meta/@content //表示从HTML中的任意位置开始
下面讲解一个使用Xpath简单的爬虫例子:
第一步:确定要爬取的内容(这里我要爬取文本、作者、标签)
第二步:元素定位(鼠标右键->检查)
在div标签上移动鼠标,看到蓝色区域覆盖的内容就在此标签内,我们要取的内容就在此标签里面。
然后,逐层打开div标签,用同样的方式定位到我们要爬取的text、author 、tags
text_list=html.xpath('//span[@class="text"]/text()') 用text()获取文本内容
author_list=html.xpath('//span/small[@class="author"]/text()') 获取作者
tags_list=html.xpath('//div[@class="tags"]/meta/@content') 用@获取content属性
第三步:写代码爬取text、author、tags
注:确保已经导入requests、lxml 我用的是Anaconda3自带第三方库
在保存数据时先创建文件夹
- 请求下载quotes的整体数据
- 抽取想要的数据 文本、作者、标签(这里看着很乱,所以需要进一步对文本、作者、标签进行匹配)
- 将文本作者标签匹配、下载数据 、保存数据
现在,我们可以去quotes文件夹看爬取的数据。