Xpath是一种路径查询语言。利用一个路径表达式从html文档中找到我们需要的数据位置,进而将其写入到本地或者数据库中。
学习Xpath爬虫,我们首先学习一下python中lxml库
关于库
lxml
终端下载Xpath需要用到的模块
pip install lxml
关于HTML
超文本标记语言,是用来描述网页的一种语言。主要用于控制数据的显示和外观。HTML文档一定意义上可以被称为网页。但反过来说网页不仅仅是HTML,网页本质有三部分构成:负责内容结构的HTML,负责表现的CSS,以及负责行为的javascript。本文主要分享的是最核心的内容结构部分。
html结构
完整的HTML文件至少包括标签、标签、
例如,我们打开 汽车之家 首页,摁下键盘上的F12键,打开浏览器自带“开发者工具”,可以看到一个完整的html文档结构,如下图
打开 中图网 首页,摁下键盘上的F12键,打开浏览器自带“开发者工具”,可以看到一个完整的html文档结构,如下图
从上图可以看出,一个完整的html文档主要包含三部分:DTD文档头,head头部信息和body正文信息。其中DTD文档头用来告诉浏览器执行标准是什么(比如html4或是html5),head头部信息用来说明浏览器的编码方式和文档头名称,body顾名思义就是浏览器的正文部分。
html标签
作为开始和结束的标记,由尖括号包围的关键词,比如 ,标签对中的第一个标签是开始标签,第二个标签是结束标签。html中常见标签如下:
其中, “< ul >< li >”是一种嵌套顺序,无序列表,成对出现;
li的父元素必须是ul或者ol,不同之处在于ol是一种有序列列表,而ul是无序列表;
html属性
属性是用来修饰标签的,放在开始标签里里面,html中常见四大属性:
属性 | 说明 |
---|---|
class | 规定元素的类名,大多数时候用于指定样式表中的类 |
id | 唯一标识一个元素的属性,在html里面必须是唯一的 |
href | 指定超链接目标的url |
src | 指定图像的url |
Xpath
xpath常见使用方法
符号 | 功能 |
---|---|
// | 表示在整个文本中查找,是一种相对路径 |
/ | 表示则表示从根节点开始查找,是一种绝对路径 |
text() | 找出文本值 |
@ | 找出标签对应的属性值,比如@href就是找出对应的href链接 |
. | 表示当前节点 |
… | 表示当前节点的父节点 |
举个例子,定位中图网中图书畅销榜TOP1000书本的位置。
定位TOP1图书
在开发者工具这一侧按住ctrl+F,在浮出的搜索栏里依次输入我们找到top1图书的位置
/html/body/div[@class=‘content’]/div/div[@class=‘container’]/div/div[@class=‘listLeft’]/div[@class=‘bookList’]/ul/li
这是绝对路径,也就是完整路径。
我们也可以通过相对路径//定位到第一本书
//div[@class=‘listMainclearfix’]/div[2]/d