ruby-on-rails - 使用 Mechanize 和 Nokogiri 从 <a> 标签中提取 href 参数

标签 ruby-on-rails ruby web-scraping nokogiri mechanize

我有这个 HTML:

<div id="main">
    <li>
        <h2>
            <a href="https://www.congress.gov/bill/99th-congress/senate-joint-resolution/427">S.J.Res.427</a>
        </h2>
    </li>
    <li>
        ....
    </li>
</div>

我想提取<a>的href值标签。

使用 Mechanize 和 Nokogiri 我做到了:
activity_list = member.search('#main li')
activity_list.each do |link| 
    activity_link = link.at("h2 a[href]")
end

但我得到了 TypeError: no implicit conversion of nil into String
怎么了?

最佳答案

您正在寻找 #attr方法:

html = Nokogiri::HTML('<div id="main"><li><h2>
  <a href="https://www.congress.gov/bill/99th-congress/senate-joint-resolution/427">S.J.Res.427</a>
</h2></li></div>')
html.search('#main li').each do |link|
  #                         ⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓
  puts link.at("h2 a[href]").attr('href')
end
#⇒ https://www.congress.gov/bill/99th-congress/senate-joint-resolution/427

关于ruby-on-rails - 使用 Mechanize 和 Nokogiri 从 <a> 标签中提取 href 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33236842/

相关文章:

javascript - Before_save不运行rails 4

ruby-on-rails - prawnto 显示新页面时不会中断的表格

python - 如何使用 BeautifulSoup 抓取网页 url

ruby-on-rails - 如何在 Controller Action 中切换 bool 属性

html - 试图制作一个页脚,其中社交媒体图标在同一行 css 中并排放置

arrays - Ruby:sum 与 inject(:+) 产生不同的结果

ruby - 使用异或密码解密后无法获得正确的编码

python - BeautifulSoup:使用 html 元素中的值

python - 无法在 Instagram 公共(public)帐户上抓取超过 12 个帖子

ruby-on-rails - Rails RSpec 路由 : Testing actions in :except do NOT route