使用 Nokogiri 获取 Url 中的特定元素

Getting specific element in Url using Nokogiri

我有这种html结构:

 <table class="list">
  <tbody>
    <tr>
      <td>
      </td>
      <td>
        <a href="club.do?codeClub=01670001&millesime=2015"></a>
      </td>
    </tr>
  </tbody>
</table>

我想获取 table 中包含的每个 <tr> 的第二个 <td> 中包含的 link,其中包含 class list。 然后实际上在每个 Url 中我只对 codeclub 的值感兴趣: codeClub=01670001

如何使用 Nokogiri 实现此目的?

您可以像这样使用 nokogiri 获取锚标签 a

require 'nokogiri'

doc = Nokogiri::HTML.parse(<<-HTML_END)
 <table class="list">
  <tbody>
    <tr>
      <td>
      </td>
      <td>
        <a href="club.do?codeClub=01670001&millesime=2015"></a>
      </td>
    </tr>
  </tbody>
</table>
HTML_END

link = doc.css('table.list tbody tr td:nth-child(2) a')[0]['href']
 => "club.do?codeClub=01670001&millesime=2015"

然后您可以使用正则表达式来获取 codeClub 的整个查询参数,如下所示:

link[/codeClub=([^&]*)/].gsub('codeClub=', '')
 => "01670001"