一, Xpath 基本语法
安装使用:
1. 下载: pip install lxml
2. 导包: from lxml import etree
3. 将 html 文档或者 xml 文档转换成一个 etree 对象, 然后调用对象中的方法查找指定的节点
2.1 本地文件: tree = etree.parse(文件名)
tree.xpath("xpath 表达式")
2.2 网络数据: tree = etree.HTML(网页内容字符串)
tree.xpath("xpath 表达式")
安装 xpath 插件在浏览器中对 xpath 表达式进行验证: 可以在插件中直接执行 xpath 表达式
将 xpath 插件拖动到谷歌浏览器拓展程序 (更多工具) 中, 安装成功
启动和关闭插件 ctrl + shift + x
测试页面数据
- lang="en">
- charset="UTF-8" />
> 测试 bs4
> 百里守约
class="song">
> 李清照
> 王安石
> 苏轼
> 柳宗元
- href="http://www.song.com/" title="赵匡胤" target="_self">
- this is span
宋朝是最强大的王朝, 不是军队的强大, 而是经济很强大, 国民都很有钱 </a>
href=""class="du"> 总为浮云能蔽日, 长安不见使人愁
- src="http://www.baidu.com/meinv.jpg" alt="" />
- class="tang">
href="http://www.baidu.com" title="qing"> 清明时节雨纷纷, 路上行人欲断魂, 借问酒家何处有, 牧童遥指杏花村
href="http://www.163.com" title="qin"> 秦时明月汉时关, 万里长征人未还, 但使龙城飞将在, 不教胡马度阴山
href="http://www.126.com" alt="qi"> 岐王宅里寻常见, 崔九堂前几度闻, 正是江南好风景, 落花时节又逢君
href="http://www.sina.com" class="du"> 杜甫
href="http://www.dudu.com" class="du"> 杜牧
> 杜小月
> 度蜜月
href="http://www.haha.com" id="feng"> 凤凰台上凤凰游, 凤去台空江自流, 吴宫花草埋幽径, 晋代衣冠成古丘
xpath 表达式:
/ 代表一个
// 代表所有
属性定位:
- # 找到 class 属性值为 song 的 div 标签
- //div[@class="song"]
层级 & 索引定位:
- # 找到 class 属性值为 tang 的 div 的直系子标签 ul 下的第二个子标签 li 下的直系子标签 a
- //div[@class="tang"]/ul/li[2]/a
逻辑运算:
- # 找到 href 属性值为空且 class 属性值为 du 的 a 标签
- //a[@href=""and @class="du"]
模糊匹配:
- //div[contains(@class, "ng")]
- //div[starts-with(@class, "ta")]
取文本:
- # / 表示获取某个标签下的文本内容
- # // 表示获取某个标签下的文本内容和所有子标签下的文本内容
- //div[@class="song"]/p[1]/text()
- //div[@class="tang"]//text()
取属性:
//div[@class="tang"]//li[2]/a/@href
二 , 获取 boss 直聘中的值位信息
来源: http://www.bubuko.com/infodetail-2826789.html