首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用Ruby将HTML转换为纯文本?

用Ruby将HTML转换为纯文本?
EN

Stack Overflow用户
提问于 2010-03-24 11:14:25
回答 9查看 30.8K关注 0票数 26

有没有什么东西可以将html转换成纯文本(可能是nokogiri脚本)?一些可以保持断行的东西,但仅此而已。

如果我在googledocs上编写一些东西,比如this,并运行该命令,它会输出(删除css和javascript),如下所示:

代码语言:javascript
复制
\n\n\n\n\nh1. Test h2. HELLO THEREI am some teexton the next line!!!OKAY!#*!)$!

所以格式化都搞砸了。我相信有人已经在某处解决了这样的细节。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2010-03-24 11:35:37

实际上,这要简单得多:

代码语言:javascript
复制
require 'rubygems'
require 'nokogiri'

puts Nokogiri::HTML(my_html).text

不过,您仍然有换行符的问题,所以您必须自己弄清楚如何处理这些问题。

票数 63
EN

Stack Overflow用户

发布于 2010-03-24 11:36:19

您可以从如下内容开始:

代码语言:javascript
复制
require 'open-uri'
require 'rubygems'
require 'nokogiri'

uri = 'http://stackoverflow.com/questions/2505104/html-to-plain-text-with-ruby'
doc = Nokogiri::HTML(open(uri))
doc.css('script, link').each { |node| node.remove }
puts doc.css('body').text.squeeze(" \n")
票数 15
EN

Stack Overflow用户

发布于 2010-03-24 11:16:00

简单地去掉标签和多余的换行符可以接受吗?

代码语言:javascript
复制
html.gsub(/<\/?[^>]*>/, '').gsub(/\n\n+/, "\n").gsub(/^\n|\n$/, '')

第一次剥离标签,第二次将重复的换行符分解为一个,第三次删除字符串开始和结束处的换行符。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2505104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档