我有一些包含重要文本的随机HTML布局需要提取。我不能只使用strip_tags()
,因为这会留下来自侧边栏/页脚/页眉等的大量额外垃圾。
我在Python中找到了一个方法,想知道PHP中是否有类似的东西。
概念相当简单:使用文本与HTML代码密度的信息来确定是否值得输出一行文本。(这不是一个新颖的想法,但它有效!)基本过程如下:
- 解析HTML代码并跟踪处理的字节数。
- 按行或段落存储文本输出。
- 将每个文本行与描述它所需的HTML字节数相关联。
- 通过计算文本t> o字节的比率来计算每行的文本密度。
- 然后使用神经网络决定该行是否属于内容。
仅通过检查行的密度是否高于固定阈值(或平均值),您就可以获得相当不错的结果,但如果使用机器学习,则系统会犯更少的错误-更不用说实现起来更容易了!
更新:我为可以从随机HTML模板中提取主要内容的答案发起了悬赏。由于我无法分享我将使用的文档-只需选择任何随机博客网站并尝试从布局中提取正文文本。请记住,页眉、侧边栏和页脚也可能包含文本。有关想法,请参见上面的链接。
$text = exec("python -m ...")
,要么使用在线服务http://boilerpipe-web.appspot.com/。 - mario