嘿,你知道吗?原来找网页上的元素就跟用GPS去寻宝似的,而XPath就好比是我手里的藏宝图呢!
初识XPath
老师傅说:"HTML是棵倒挂的树,XPath就是你的登山杖。"
我盯着这段代码发呆:
<div class="bookstore">
<h1>编程宝典</h1>
<ul>
<li id="book1">《Python入门》</li>
<li>python实战</li>
</ul>
</div>
突然开窍了!
绝对路径:像精确导航
/html/body/div/ul/li[1] → 《Python入门》
相对路径:像模糊搜索
//ul/li → 找到所有书籍
浏览器实战
在Chrome按下 F12,发现新大陆:
- 右键元素 → Copy → Copy XPath
- 在Console输入:$x('//h1')
- 立刻看到结果!
黄金技巧:
自动生成的XPath像拐杖,学会自己写才是真本事!
属性定位大法
哎呀,碰到那种动态网页啊,就跟走进迷宫里似的。
<div class="product" data-id="A123">
<span class="name">无线耳机</span>
</div>
破解密码:
//div[contains(@class,'product')] <!-- class包含product -->
//div[@data-id='A123']/span <!-- 精确匹配属性值 -->
多元素捕获
当需要批量抓取时:
//table/tr[position()>1] <!-- 跳过表头 -->
//div[starts-with(@id,"item")] <!-- ID以item开头 -->
避坑提醒:
索引从 1 开始!不是0!
血泪经验:
- 总是用strip()清理文本空格
- 用if else处理可能缺失的元素
- ./表示当前节点下搜索
今日金句收藏
"XPath是用路径语言和网页对话的艺术 —— 你说的越精准,它回答的越干脆"