html - 如何使用 Nokogiri 从 HTML head 获取规范链接

标签 html ruby nokogiri

我正在尝试使用 Nokogiri 从网页获取定义的规范链接:

<link rel="canonical" href="https://test.com/somepage">

这是我要查找的href

无论我尝试什么,它似乎都不起作用。这是我的:

page = Nokogiri::HTML.parse(browser.html)

canon = page.xpath('//canonical/@href')
puts canon 

这不会返回任何内容,甚至不会返回错误。

最佳答案

您正在尝试获取属性,但您不是这样做的。

你可以使用这个:

page.xpath('//link[@rel="canonical"]/@href')

它说的是:在文档中的任何位置给我一个链接元素,该元素具有等于 "canonical"rel 属性,当您找到该节点时,给我它的 href 属性。

完整的答案是:

page = Nokogiri::HTML.parse(browser.html)

canon = page.xpath('//link[@rel="canonical"]/@href')
puts canon 

您尝试做的是获取一个称为“规范”的节点,而不是属性。

关于html - 如何使用 Nokogiri 从 HTML head 获取规范链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40639378/

相关文章:

javascript - 验证失败时阻止提交表单(Angular Material)

html - 一个 div 和兄弟 div 自动高度的动态高度

javascript - HTML5 文件系统 : file not created on device

ruby - PubSubHubbub 用于 Ruby 博客 (Merb)

ruby - 使用 Array 方法的素数列表

html - css,html : allowed properties for html elements, 很好的引用站点

ruby - 我可以使用 Hpricot 查找任何/大多数网站的主要文章文本吗?

ruby - 如何处理 Nokogiri 中的 404 not found 错误

html - 如何使用 Nokogiri::XML::Builder 将非转义符号添加到 HTML

ruby - 我可以使用什么 XPath 来获取第一段节点之后(包括第一段节点)的所有文本节点?