Python3网络爬虫

家住魔仙堡 提交于 2020-01-04 13:38:53

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"一样的结果 。害…可谓是车到山前必有路,正当我一筹莫展之际,我又打听到了她是电气专业的,啪啪啪…键盘一顿操作,输入“==//@电气==”
回车,得到了电气专业所有汉子的名单???啥???汉子??

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!