css – Ruby Mechanize获取具有指定文本的元素

我试图使用机械化来解析网站的内容,我被困在某一点上.我要解析的内容位于li标记内,并不总是处于相同的顺序.

让我们假设我们有以下内容,其中li标签的顺序并不总是相同,有些甚至可能根本不存在.

<div class="details">
  <ul>
    <li><span>title 1</span> ": here are the details"</li>
    <li><span>title 2</span> ": here are the details"</li>
    <li><span>title 3</span> ": here are the details"</li>
    <li><span>title 4</span> ": here are the details"</li>
  </ul>
</div>

我想要的只是获取范围文本所示的li详细信息,例如标题3.我所做的是以下内容,它给出了第一个li的详细信息:

puts page.at('.details').at('span',:text => "title 3").at("+ *").text

有没有办法用机械化做我想做的事情,还是我还应该用其他方法

解决方法

page.search(".details").at("span:contains('title 3')").parent.text

说明:
使用at,您可以使用css或xpath选择器.为了使您的方法更具可读性和类似性,此答案使用css选择器,但问题是CSS无法基于文本执行选择.感谢Nokogiri,您可以使用JQuery选择器,因此contains方法是允许的.

选择获取span元素,因此如果要获取li元素parent,可以使用父方法,然后轻松获取文本.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Css3如何实现鼠标移上变长特效?(图文+视频)
css3怎么实现鼠标悬停图片时缓慢变大效果?(图文+视频)
jquery如何实现点击网页回到顶部效果?(图文+视频)
css3边框阴影效果怎么做?(图文+视频)
css怎么实现圆角边框和圆形效果?(图文+视频教程)
Css3如何实现旋转移动动画特效
js如何实现文字闪烁特效?(图文+视频)
CSS3怎么实现背景颜色渐变?(图文+视频)
Css3如何实现文本溢出隐藏并显示省略号效果
添加CSS的三种方式
css如何实现单边阴影效果
css font-size-adjust属性怎么用
三分钟了解css中z-index属性
css text-align-last属性怎么用
css设置背景图片模糊,内容不模糊
弹性盒子布局flex是什么
圆角边框的css属性是什么
前端特效之520表白神器-旋转照片墙
css font-style属性怎么用
css position属性怎么用