ruby - Nokogiri 识别页面上最大文本的策略?

标签 ruby xpath html-parsing nokogiri text-parsing

我正在对一堆野外着陆页进行比较。我试图提取主标题和号召性用语,但当然,页面的 HTML 格式差异很大。

我开始寻找 H1、H2 等,假设标题标签对应于首要性,但情况通常并非如此。渲染的 font-size* 可能是一个更好的指标,但这看起来很困惑,并且无法处理使用带有 alt 标签的图像的情况。

使用 Nokogiri 识别 100 个野生着陆页的主标题的好策略是什么?

*还有-是否有一个聪明的选择器来渲染字体大小?

最佳答案

除非您运行的人工智能可以确定文档中语义上最重要的部分,否则您无法做到这一点。

您不能指望 header 或元标记等标记,因为这些标记可能会完全丢失。

您不能指望源代码中的位置,因为 CSS 可以将内容移动到任何地方。

而且,即使你认为通过查看 CSS 就已经搞定了,JavaScript 也可以从你身上夺走这个现实,因为它可以覆盖一切,依赖于人的眼睛和大脑才能理解这一事实最终呈现的页面。

因此,基本上,您将主要在黑暗中拍摄,除非您有代码可以理解页面的内容并确定单词出现的频率及其同义词和词根,然后确定CSS 和 JavaScript 运行后它们在页面上的位置。

这确实是一项艰巨的任务,很多大公司都花费了大量资金。

关于ruby - Nokogiri 识别页面上最大文本的策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17394406/

相关文章:

html - 我有这个HTML,并且需要编写XpathQueryString的帮助

php - 在 xpath 中根据类和样式排除标签

html-parsing - 使用nutch 1.0和自定义插件解析HTML数据

java - 如何从 Java 验证 HTML?

ruby - 使用 Raise 尝试在 Ruby 中回答 Rspec 到 raise_error 时不断出现错误?

ruby-on-rails - 解析 JSON 时出错 : undefined method 'gsub'

python - 如何通过Selenium-Python访问 'rect'类型元素

java - 无法使用 Jsoup HTML 解析器 Java 实现某些功能

ruby - method_missing 在 Ruby 中的可见性

ruby-on-rails - "Ago"Ruby/Rails 中的日期/时间函数