我刚开始学习 Ruby。很酷的语言,很喜欢。
我正在使用非常方便的 Hpricot HTML 解析器。
我要做的是抓取页面中的所有文本,不包括 HTML 标记。
例子:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Data Protection Checks</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div>
This is what I want to grab.
</div>
<p>
I also want to grab this text
</p>
</body>
</html>
我基本上只想抓取文本,所以我得到了这样一个字符串:
“这就是我要抓取的,我也想抓取这段文字”
执行此操作的最佳方法是什么?
干杯
头皮
最佳答案
您可以使用 XPath text()
选择器执行此操作。
require 'hpricot'
require 'open-uri'
doc = open("http://stackoverflow.com/") { |f| Hpricot(f) }
text = (doc/"//*/text()") # array of text values
puts text.join("\n")
然而,这是一个相当昂贵的操作。可能有更好的解决方案。
关于html - Hpricot,从文档中获取所有文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1243817/