gpt4 book ai didi

html - 带有 nokogiri 的 strip 样式属性

转载 作者:技术小花猫 更新时间:2023-10-29 12:18:20 25 4
gpt4 key购买 nike

我正在使用 nokogiri 抓取一个 html 页面,我想删除所有样式属性。
我怎样才能做到这一点? (我没有使用 rails,所以我不能使用它的清理方法,我不想使用清理 gem,因为我想删除黑名单而不是白名单)

html = open(url)
doc = Nokogiri::HTML(html.read)
doc.css('.post').each do |post|
puts post.to_s
end

=> <p><span style="font-size: x-large">bla bla <a href="http://torrentfreak.com/netflix-is-killing-bittorrent-in-the-us-110427/">statistica</a> blabla</span></p>

我想要它

=> <p><span>bla bla <a href="http://torrentfreak.com/netflix-is-killing-bittorrent-in-the-us-110427/">statistica</a> blabla</span></p>

最佳答案

require 'nokogiri'

html = '<p class="post"><span style="font-size: x-large">bla bla</span></p>'
doc = Nokogiri::HTML(html)
doc.xpath('//@style').remove
puts doc.css('.post')
#=> <p class="post"><span>bla bla</span></p>

编辑以显示您可以调用 NodeSet#remove而不是必须使用 .each(&:remove)

请注意,如果您有一个 DocumentFragment 而不是一个文档,Nokogiri 有 a longstanding bug从片段中搜索无法如您预期的那样工作。解决方法是使用:

doc.xpath('@style|.//@style').remove

关于html - 带有 nokogiri 的 strip 样式属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6096327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com