ruby - 我正在尝试提取 html 页面上的每个 href 链接以使用 nokogiri 和 xpath 进行评估

标签 ruby xpath nokogiri

我正在尝试提取 html 页面上的每个 href 链接以使用 nokogiri 和 xpath 进行评估。到目前为止,我所拥有的似乎只是将页面标题拉出来。我对链接标题不感兴趣,只对指向的 URL 感兴趣。

这是我所拥有的:

doc = Nokogiri::HTML(open("http://www.cnn.com"))
doc.xpath('//a').each do |node|
  puts node.text
end

谁能指导我如何更正此问题,以便我提取实际的 href 而不是文本本身?

最佳答案

您的//a 的 XPATH 正在拉回所有元素。其中包括文本内容。您可以使用@attrname 来访问属性。例如

//a/@href

会得到文档中每个 a 的 href

关于ruby - 我正在尝试提取 html 页面上的每个 href 链接以使用 nokogiri 和 xpath 进行评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3404526/

相关文章:

ruby - 如何根据列名和字符串相似性合并两个 txt 文件

ruby - 扩展 Ruby Mechanize 脚本以使用代理

java - 如何使用动态xpath进行谷歌搜索?

ruby - 如何让 Nokogiri 解析并返回 XML 文档?

ruby-on-rails - 从 HTML 页面中删除所有 JavaScript

ruby - 通过Ruby流YouTube声音?

ruby-on-rails - Ruby On Rails - 重用错误消息部分 View

selenium - 在 Selenium WebDriver 的属性中使用 XPath 通配符

selenium - Xpath/获取具有某些值的最接近的祖先

ruby - 如何使用Nokogiri和XPath获取具有多个属性的节点