Daw*_*son 2 html ruby nokogiri
我正在尝试使用 Nokogiri 从网页获取定义的规范链接:
<link rel="canonical" href="https://test.com/somepage">
Run Code Online (Sandbox Code Playgroud)
这就是href我所追求的
无论我尝试什么似乎都不起作用。这就是我所拥有的:
page = Nokogiri::HTML.parse(browser.html)
canon = page.xpath('//canonical/@href')
puts canon
Run Code Online (Sandbox Code Playgroud)
这不会返回任何内容,甚至不会返回错误。
您正在尝试获取该属性,但这不是您的做法。
你可以使用这个:
page.xpath('//link[@rel="canonical"]/@href')
Run Code Online (Sandbox Code Playgroud)
它的意思是:在文档中的任何位置为我提供一个具有 rel等于属性的链接元素"canonical",当您找到该节点时,为我提供它的href 属性。
完整答案是:
page = Nokogiri::HTML.parse(browser.html)
canon = page.xpath('//link[@rel="canonical"]/@href')
puts canon
Run Code Online (Sandbox Code Playgroud)
您试图做的是获取一个称为“规范”的节点,而不是属性。