通过xpath解析html
-
什么是xpath?
xpath全名xml path language,是用来解析xml类语言的一种比较方便的工具,用好xpath就不需依赖字符串、索引等去定位元素、获取元素值。 -
什么是xml
xml与常见的html一样,都属于尖括号语言,都是用来描述、表示数据的一种方式,不同的是html的标签有严格的规定和限制,而xml却更加灵活,可以根据自己的需求自定义标签,xml与html相互补充,可以说是一对亲兄弟了,所以用xpath对html是完全支持的,科普完毕,进入正题。 -
如何编写xpath?
-
编写xpath不需要任何的额外的编辑器,因为几乎所有的浏览器中都预置有xpath插件,通过这些插件我们可以实时的调试我们的xpath语句,甚至直接复制目标元素的xpath路径用于使用。使用方法:打开浏览器,键入F12打开开发者工具,上方选择element,就可以看到完整的html源代码,找到你想要获取的元素,鼠标右键copy,选择copy xpath就可以得到该元素的大概的xpath路径,如果想要测试,按住“ctrl”和f,在下方的出的输入框输入xpath就可以进行调试。
-
xpath常用语法?
1."/" 从当前元素开始解析
2."//" 从所有元素开始解析
3.这两个不好理解,放一起解释一下,如果把xml类语言整个结构比作一颗大树,“/”只能找到根节点上的元素,例如在htm标准结构l中,开头输入一个“/”,就只能匹配到,所以,xpath语句开头输入“//”就可以避免这种麻烦,因为使用“//”就选中了所有的元素。
4.“@”指定元素中的属性。@常常用于表达式或者取到元素的值,例如,“//[@id=”a”]”就可以在所有元素中找到id=“a”的元素、“//[@id=”a”]/@value”就可以取到id为a的元素的value的值。“//[@id=”a”]/@text()”可以取到id为a的尖括号中间元素的值。
知道这些,你可以解析大部分的的html网页了 -
如何在爬虫中使用xpath?
在编程语言中,以python为例,介绍xpath的使用。
第一步,安装lxml库
第二步,在你的python程序中引入lxml中的etree类
from lxml import etree
第三步,实例化etree对象
html = HTML.etree(str)
ret = html.xpath(“你的xpath语句”)
ret就是所取到的内容,可以看到十分的简洁和方便