天天看点

DC学院爬虫学习笔记(四):使用Xpath解析豆瓣短评解析神器Xpath:实战环节

XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。

XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初XPath的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型。但是XPath很快的被开发者采用来当作小型查询语言。

首先通过Requests库获取网页数据

通过网页解析,得到想要的数据或者新的链接

网页解析可以通过Xpath或者其它解析工具进行,Xpath在是一个非常好用的网页解析工具

DC学院爬虫学习笔记(四):使用Xpath解析豆瓣短评解析神器Xpath:实战环节

正则表达式使用比较困难,学习成本较高

BeautifulSoup性能较慢,相对于Xpath较难,在某些特定场景下有用

Xpath使用简单,速度快(Xpath是lxml里面的一种),是抓取数据最好的选择

1. 使用Xpath解析网页数据的步骤

从lxml导入etree

解析数据,返回xml结构

使用.xpath()寻找和定位数据

首先在浏览器上定位到需要爬取的数据

右键,点击“检查”,在“Elements”下找到定位到所需数据

右键——Copy——Copy Xpath,即可完成Xpath的复制

DC学院爬虫学习笔记(四):使用Xpath解析豆瓣短评解析神器Xpath:实战环节

获取文本内容用 text()

获取注释用 comment()

获取其它任何属性用@xx,如:

src

value

想要获取某个标签下所有的文本(包括子标签下的文本),使用string

如”< p>123< a>来获取我啊< /a>< /p>”,这边如果想要得到的文本为”123来获取我啊”,则需要使用string

starts-with 匹配字符串前面相等

contains 匹配任何位置相等

DC学院爬虫学习笔记(四):使用Xpath解析豆瓣短评解析神器Xpath:实战环节

使用Xpath爬取豆瓣图书《小王子》短评网页

通过对比可以发现从浏览器复制的Xpath中,“li[]”括号中的数字代表对应的第几条评论,直接删除括号,即可获取全部短评

对于结构清晰的html网页,可以直接手写Xpath,更加简洁且高效

对于结构复杂的html网页,可以通过浏览器复制的方式获取Xpath