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

前端之家收集整理的这篇文章主要介绍了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,可以使用父方法,然后轻松获取文本.

原文链接:https://www.f2er.com/css/215412.html

猜你在找的CSS相关文章