没错,让你提高20倍效率的技巧就是「XPath」。
为什么要写XPath这个话题?
小八通过近一段时间观察,发现无论是在八爪鱼QQ群、微信群,还是在论坛,用户所反馈的采集难题中,有80%以上,都是可以通过:
写「一条正确的XPath」就能解决
比如
A:“我设计好的规则,怎么采集下来很多空白的数据?”
B:“我采集下来的数据,怎么有那么多不必要的字段?导致我后续清洗数据的工作量非常大。”
C:“为何我采集的数据是错的?”
等等……
这些问题都源自采集数据过程中,数据「定位」不够精准导致。
而XPath的最大作用就在于「精准定位」目标数据。
文本希望能让大家:
进一步认识什么是XPath?
学习XPath对于你的数据采集工作到底有多大的益处?
1、XPath初相识
什么是XPath?
XPath(XMLPathLanguage),其中XML是用来存储和传输数据的网页文档,Path意为路径。
XPath是在HTML文档中查找信息的语言。
XPath 用于在HTML文档中通过元素和属性进行导航。
什么是HTML?
HTML(HyperTextMarkupLanguage)超文本标记语言。
HTML,用来描述网页的一种语言。我们日常浏览的网页背后都是一个个HTML文档。我们打开一个网页,点击鼠标右键,点击“查看网页源代码”就能看到该网站的HTML文档。
2、XPath在采集过程中如何工作
XPath工作原理
XPath的工作原理
网页上的每个元素都有独立的位置,犹如地球上每个地点都有各自的经纬度。要找到这个元素,需要制定一条通往它的路线。
XPath就是这样一条可以精准找到网页文本中某个元素的路径。
在采集过程中,有了XPath路径,八爪鱼便能迅速从HTML文档中,精准定位到用户需要的数据,并采集下来。
采集过程几乎每一步都有XPath
在八爪鱼制定规则中,除了打开网页以外,其他每个步骤都会有一条XPath。
比如,定位需要提取的数据的XPath。
比如,定位循环采集列表的XPath。
比如,定位循环翻页按钮的XPath。
为了降低用户使用门槛,八爪鱼内置了一项自动生成XPath的功能。在用户设计采集流程中,会帮用户自动生成一条XPath用于定位用户选中的按钮或字段,以实现采集的目的。
3、XPath为什么重要?
既然八爪鱼能自动生成XPath,为什么还要学?
八爪鱼XPath自动生成的XPath只能满足基础且结构较单一的的网页采集。
实际上,所有的网站的结构都是复杂且千变万化的,即使同一个网站的同个栏目底下,其子页面的结构也是不尽相同。
只靠自动生成的XPath,你会经常遇到文章开头提到的采集问题。
这时,如果你会写XPath,问题就能迎刃而解了。
学习XPath对你有什么好处?
| XPath可灵活地应对各式各样的网站
学习XPath,就是学习一套通用的网页数据采集的方法原理。不管网站是什么类型或行业的,掌握了方法和原理,犹如掌握了数学公式,外部变量再多,解题的方法还是一样的。
| XPath可提高采集精准度,一击即中
没有对比就没有伤害,我们看下不精准XPath和精准XPath的采集结果对比。
不精准XPath采集结果(出现大量空白字段)
精准XPath采集结果(数据非常完整)
采集结果出现空白字段几乎都是因网页结构发生变化,XPath的路径不够精准,导致你的采集工作来回返工,工作量倍增。如果你懂XPath,就能写一条精准且通用的XPath匹配不同的网页结构。
| XPath可优化采集流程,提高采集速度
采集的速度除了受网速、设备硬件影响以外,也会受到XPath影响。精准的XPath能够快速定位数据,优化采集流程从而提高采集速度。
站在采集界顶峰的视角
| XPath能让你体会到高阶采集技巧的乐趣
XPath是区分数据采集小白和高手的分水岭。许多用户都在XPath这座“山”前倒下。一旦你学会,你就成为了采集界的高手,即使面对再复杂的网站,采数据犹如探囊取物般容易
。
这份乐趣,可是只有学会XPath的你才能体会哦。
4、XPath如何学习
八爪鱼提供丰富、全面的XPath教程,让你从小白进阶XPath高手妥妥的。
扫码关注「八爪鱼采集研究院」,并回复“xpath”,获取XPath学习教程!
八爪鱼会一直陪在你身边,采集路上绝不孤单