Python3网络爬虫
四、解析库的使用
1、XPath概览
XPtah:全称 XML Path Language ,即XML路径语言,它是一种用来确定XML文档中某部分位置的语言。
XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力,其语法结构不仅适用于XML文档的搜索,同样也适用于HTML文档。起初XPath的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型。但是XPath很快的被开发者采用来当作小型查询语言。
2、XPath常用规则
表达式 | 描述 |
---|---|
nodename | 选取此节点的所有子节点 |
/ | 从当前节点选取直接子节点,不考虑它们的位置 |
// | 从当前节点选取所有子孙节点,不考虑它们的位置 |
. | 选取当前节点 |
…(两个点) | 选取当前节点的父节点 |
@ | 选取属性 |
路径匹配规则示例:
路径表达式 | 结果 |
---|---|
school | 选取school节点的所有子节点 |
/school | 选取根节点school(这是绝对路径的写法:路径起始于正斜杠‘/’) |
school/class | 选取属于school的所有class子节点(相对路径形式:即不以"/"起首) |
//classl | 获取所有class节点,忽视位置限制 |
school//class | 选取属于根节点school的所有class节点,而不管他们位于school下的任何位置[class可能为school的孙节点或者是子节点] |
//@Automation | 选取属性为Automation的所有节点 |
就可以假设Xpath是一个校园信息查询服务系统。然后我对一个女孩子朝思暮想,但我对于她知之甚少,怎么办呢?然后我到处打听,终于打听到了她原来是自动化学院的,然后我就在Xpath系统中输入了“Automation”,得到了1500+个名单…(OMG,我的女孩在哪里…),由于是宅男一枚,虽然第一次尝试查找失败了,但第一次接触到自动化学院这个名词,感到很是新奇,于是又在Xpath系统中输入“/Automation”,系统跳转到了自动化学院首页,原来这个学院就是超级厉害的工业互联网学院,我在来到这所学校之前就已对它有所耳闻。秉着不到黄河心不死的想法,我继续拜托我的朋友帮我寻找关于她的更多信息。皇天不负有心人,这次终于得到了关于他的更为详细的信息,但还是没能寻得他的芳名。这次我知道了她是二班的,但没打听出具体哪个专业的,然后输入“Automation/calss_2”,唉,咋只给了我一个结果?只有一个电气工程及其自动化二班???不对吧,我明明记得自动化学院不是有好几个专业嘛,物联网,智能电网,咋只给我返回了一个结果??难道就因为电气是自动化的亲儿子?…重新输入查询“//class_2”,原来自动化学院有这么多二班嘛,电气二班,物联网二班、智能电网二班、测控二班、自动化二班…那刚刚咋回事,难道是我查询姿势不对??换个姿势??那就翘个兰花指吧,结果多点了个斜杠…“Automation/calss_2”,咱也不敢说,咱也不敢问,就是这么强,打开了新世界的大门?得到了和"//class_2"一样的结果 。害…可谓是车到山前必有路,正当我一筹莫展之际,我又打听到了她是电气专业的,啪啪啪…键盘一顿操作,
回车,得到了电气专业所有汉子的名单???啥???汉子??
来源:CSDN
作者:Polaris_0.0
链接:https://blog.csdn.net/qq_40777643/article/details/103148203