2

nokogiri用作我的 HTML 解析器。

<html>
<body>
<form>
<table>
    <tr><td>Some Text</td></tr>
    <tr>
        <td colspan="2" align="center">
            <br />
            <a href="TransportRoom?servlet=CaseSearch.jsp&amp;advancedSearch=Advanced">
                Advanced Search
            </a>
            <br />
            &nbsp;
        </td>
    </tr>
</table>
</form>
</body>
</html>

在这个 html 代码中,我想解析“高级搜索”链接。此 html 保存在名为的变量中doc1

谁能帮我这个?

4

3 回答 3

4

应该很简单

doc = Nokogiri::HTML(doc1)
href = doc.css("a").first.attr('href')

这就是你想要的?

于 2012-07-23T08:40:42.010 回答
1

第一个答案对我有用,但如果有 n 个链接,我们可以通过这种方式操作它

 html = Nokogiri::HTML(doc1)

 html.css("a").each do |element|
      if (element.text.strip == 'Advanced Search')
        advance_search_link = element.attr('href')
      end
  end
于 2012-07-27T06:18:42.003 回答
0

我会做如下:

require 'nokogiri'

@doc = Nokogiri.HTML <<-eotl
<html>
<body>
<form>
<table>
    <tr><td>Some Text</td></tr>
    <tr>
        <td colspan="2" align="center">
            <br />
            <a href="TransportRoom?servlet=CaseSearch.jsp&amp;advancedSearch=Advanced">
                Advanced Search
            </a>
            <br />
            &nbsp;
        </td>
    </tr>
</table>
</form>
</body>
</html>
eotl

@doc.at_xpath("//a[normalize-space(.)='Advanced Search']")['href']
# => "TransportRoom?servlet=CaseSearch.jsp&advancedSearch=Advanced"
于 2013-12-08T16:55:14.870 回答