Ruby 使用Nokogiri从HTML中删除所有外部资源

Ruby 使用Nokogiri从HTML中删除所有外部资源,ruby,nokogiri,Ruby,Nokogiri,我想从html文件中删除所有外部资源。 我正在使用wget制作一些页面的本地副本。Wget有将链接转换为本地文件系统的选项,这很好,但仍然有一些链接(我相信在下载深度的末尾)保留了它们的外部src,因此它们包含http 我能找到的最接近包含http的所有内容是: doc.search(“//*[以(@href,'http')]开头”) 但这只是找到href元素,http也可以在图像、视频和任何内容中找到。 你知道什么是正确的指示,让Nokogiri告诉我所有包含http的内容吗 谢谢。如果您只想

我想从html文件中删除所有外部资源。 我正在使用wget制作一些页面的本地副本。Wget有将链接转换为本地文件系统的选项,这很好,但仍然有一些链接(我相信在下载深度的末尾)保留了它们的外部src,因此它们包含http

我能找到的最接近包含http的所有内容是:

doc.search(“//*[以(@href,'http')]开头”)

但这只是找到href元素,http也可以在图像、视频和任何内容中找到。 你知道什么是正确的指示,让Nokogiri告诉我所有包含http的内容吗


谢谢。

如果您只想将搜索范围扩展到具有以“http”开头的任何属性的元素,您可以执行以下操作:

doc.search("//*[@*[starts-with(.,'http')]]")

嗨,非常感谢!为了满足我的需要,我不得不对它进行一些修改,以获得包含http的所有内容。但你的密码让我进入正轨。我现在使用的是doc.search(“/@*[以(,'http')]”开头)。区别在于,我的XPath语句(拼写错误现已修复)查找所有以'http'开头的属性的元素,而您的语句只查找属性节点本身。两者都可以,这取决于您以后将如何处理匹配项。