使用xpath的好处
名称 | 速度 | 效率 | 难度 |
---|---|---|---|
bs4 | 慢 | 低 | 简单,适合初学者 |
xpath | 较快 | 中 | 一般 |
正则 | 快 | 高 | 难度高,时常让人头疼 |
基础用法
表达式 | 描述 | 用法 | 说明 |
---|---|---|---|
nodename | 选取此节点下的所有子节点 | div | 选取div标签下的所有标签,(比如 <li> <a> 等标签里的所有内容) |
// | 从全局节点中选择节点,任意位置均可 | //div | 选取整个HTML页面的所有div标签 |
/ | 选取某个节点下的节点 | //head/title | 选取head标签下的title标签(或选择绝对路径) |
@ | 选取带某个属性的节点 | //div[@id] | 选择带有id属性的div标签 |
. | 当前节点下 | ./span | 选择当前节点下的span标签 |
·· | 选取当前节点下的父节点 | …/span | 选择span标签上一节点(比如div标签下的span标签,使用后,代表选择div标签) |
* | 匹配任何元素节点 | *a | 选取所有a标签的内容,无论他在哪一个具体的标签下 |
*@ | 匹配任何属性节点 | *@href | 选取所有带href属性的内容 |
便捷使用
推荐使用Chrom插件XPath Helper,用该插件预览xpath所提取的内容
(请自行在Google应用商店里下载)
接下来用百度首页来展示
1.假定我们需要提取百度首页左上角的文字
2.按f12检查网页并选中“新闻”文字,点击
3.鼠标选中右边红框栏,右键 Copy 选择 Copy XPath
4.打开XPath Helper并把复制内容粘贴如左侧框中
可以看见右侧出现了“新闻”字样,这就是我们想要的内容;再仔细观察左侧a标签后面还有数字序号,那么我们把他删除,可出现
左侧文字全部出现,达到目的,再将xpath路径放入爬虫中,得到我们想要的东西。
如有不足或错误的地方,欢迎大家反馈