Ruby Mechanize Elemente mit dem angegebenen text

Ich versuche zu analysieren, die Inhalte einer website mit mechanize und ich bin stecken geblieben an einer Stelle. Die Inhalte, die ich will, um zu analysieren, ist in einen li tag, und nicht immer in der gleichen Reihenfolge.

Können angenommen, wir haben folgenden, wo die Reihenfolge der li - tags ist nicht immer das gleiche und einige Male, einige möglicherweise gar nicht da.

<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>

Was ich will, ist, um nur die li details, in denen die span text ist zum Beispiel title 3. Was ich gemacht habe, ist das folgende, das gibt mir die Daten aus der ersten li:

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

Gibt es eine Möglichkeit, das zu tun, was ich will, mit mechanize oder sollte ich die auch anderweitig verwenden?

  • Wenn Sie möchten, können Sie dies tun, mit nokogiri.. Wenn du willst kann ich versuchen für dich..
  • Mechanize da ich gelesen und gesehen habe, ist das arbeiten mit nokogiri. Die page dass Sie sehen können, werden behandelt, als eine nokogiri-Objekt, in dem Sie suchen können. Statt zum Beispiel css_at Sie schreiben nur at
  • Hmm ich habe gerade festgestellt, dass.. Was ist das problem mit deinem code? Wenn ich weiß, dass,ich kann mir wohl denken, mein ein.. 🙂
  • Wie gesagt, das problem ist, dass es mir die ersten li in der Erwägung, dass, ich will die eine, die als <span> text title 3
Schreibe einen Kommentar