【发布时间】:2010-05-31 05:10:59
【问题描述】:
我有一个棘手的问题,我想为给定的 url 生成几段“描述”,通常是文章的开头。元描述字段是一种方法,但它并不总是很好或设置正确。
公平地说,从截屏的 HTML 中实现这一点有点问题。我有一个大致的想法,也许可以扫描 HTML 以找到第一个“适当”的段,但很难说那是什么,也许是第一段包含一定数量的文本......
有人有什么好主意吗? :) 不一定要万无一失
【问题讨论】:
我有一个棘手的问题,我想为给定的 url 生成几段“描述”,通常是文章的开头。元描述字段是一种方法,但它并不总是很好或设置正确。
公平地说,从截屏的 HTML 中实现这一点有点问题。我有一个大致的想法,也许可以扫描 HTML 以找到第一个“适当”的段,但很难说那是什么,也许是第一段包含一定数量的文本......
有人有什么好主意吗? :) 不一定要万无一失
【问题讨论】:
那么,你想成为一个新的谷歌,是吗? :-)
如今,许多网站都“对 SEO 友好”。这使您可以查找标题,然后查找下面的段落。
另外,查找列表。在某种类似选项卡(选项卡、手风琴...)的界面中有很多内容是使用有序或无序列表完成的。
如果失败,也许寻找一个具有“内容”或“主”类或组合的 div 并从那里开始。
如果您使用不同的方法,请确保保留哪些有效和哪些无效的统计信息(甚至可以保存一整页),以便您可以查看和调整您的解析和搜索方法。
作为旁注,我使用htmlagilitypack 成功解析和搜索html。好吧,至少它胜过用正则表达式解析:-)
【讨论】:
也许寻找包含最多p 元素的div 元素,然后抓取第一个p 子元素。如果没有div,则从body 元素中获取第一个p。
这总会有它的问题。
【讨论】:
您可以使用此正则表达式去除 HTML 标记
string stripped = Regex.Replace(textBox1.Text,@"<(.|\n)*?>",string.Empty)
您将获得可用于生成段落的内容文本。
【讨论】: