爬虫笔记之xpath
xpath如何取包含多个class属性
如果HTML结构是这样
<div class="demo"></div>
那么我知道可以写xpath //div[@class="demo"]
但是如果我的html是
<div class="test demo"></div>
<div class="demo test"></div>
<div class="test demo2"></div>
我只想选出有demo这个class的对象,那应该怎么弄
要取多个class属性值的元素,应该如何办呢;
如:
<div class='a b'>test</div>
如果是用xpath('//div[@class="a"]')
会取不到这里面的值;
可以用如下的表达式:
xpath('//div[contains(@class,"a")]')
它会取得所有class为a的元素
或者
xpath('//div[contains(@class,"a") and contains(@class,"b")]')
它会取class同时有a和b的元素
and改为or,就是选择class=a或者class=b的元素
如果没记错的话可以这么来:
//div[contains(@class, 'demo')]
如果是多个则可以:
//div[contains(@class, 'demo') and contains(@class, 'other')]
如果目标 class 不一定是第一个,那么:
//div[contains(concat(' ', @class, ' '), 'demo')]
原文链接
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
xpath获取当前标签下的所有文本(包括子标签)
使用内建函数string
string(//div[@class="art_content"])
//获取"art_content"div下的所有内容
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具