使用 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"
我有这种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"