当然HTML网页可以分析使用任何数量的蟒蛇的分析程序,但是我很惊讶,那里似乎没有任何公共分析的脚本中提取有意义的内容(不包括边栏、导航、等等)。 从一定HTML文档。

我猜这是什么喜欢收集DIV和P元素,然后检查他们的最低金额的文字内容,但我敢肯定,一个固执行情况将包括大量的事情,我没有想到的。

有帮助吗?

解决方案

尝试美丽的汤库用于Python。它具有非常简单的方法来提取从HTML文件的信息。

试图从一般的网页中提取数据需要人写自己的网页以类似的方式......但有办法传达一个页面看起来相同更不用说所有conbinations几乎是无限的,你可以传达相同的信息。

有没有一种特定类型的你试图提取信息或其他一些最终目标?

您可以尝试提取“格”和“P”标志的任何内容,并比较在页面中的所有信息的相对大小。那么问题是,人们大概组信息到集合“div的和” P(或至少他们做,如果他们正在写良好的HTML!)。

也许如果你形成的信息是如何与一棵树(节点将是“P”或“格或任何与每个节点将包含相关的文本),你可以做一些分析,以确定最小的” P '或‘那encompases这似乎是大多数人的信息的div’..?

[编辑] 也许如果你能得到它到树结构中我建议,然后你可以使用类似的计分制度,垃圾邮件刺客。定义一些规则,尝试对信息进行分类。一些例子:

+1 points for every 100 words
+1 points for every child element that has > 100 words
-1 points if the section name contains the word 'nav'
-2 points if the section name contains the word 'advert'

如果你有大量的这加起来当你找到更相关的看着段低的计分规则,我认为这可能演变成一个相当强大的和强大的技术。

[EDIT2] 纵观可读性,它似乎是在做几乎正是我刚才的提议!也许它可以改进,以便更好地尝试和理解表?

其他提示

看一看TemplateMaker中: http://www.holovaty.com/writing/templatemaker/

它是由Django的的创始人之一写入。基本上你给它的几个例子的HTML文件,它就会生成一个“模板”,然后可以用它来提取只是不同(这通常是有意义的内容)的位。

下面是来自谷歌代码页的示例:


# Import the Template class.
>>> from templatemaker import Template

# Create a Template instance.
>>> t = Template()

# Learn a Sample String.
>>> t.learn('<b>this and that</b>')

# Output the template so far, using the "!" character to mark holes.
# We've only learned a single string, so the template has no holes.
>>> t.as_text('!')
'<b>this and that</b>'

# Learn another string. The True return value means the template gained
# at least one hole.
>>> t.learn('<b>alex and sue</b>')
True

# Sure enough, the template now has some holes.
>>> t.as_text('!')
'<b>! and !</b>'

您可以使用 boilerpipe Web应用程序获取和提取的飞行内容。

(这不是具体到Python,因为你只需要发出HTTP GET请求,在谷歌的AppEngine页)。

干杯,

基督教

什么是有意义的,什么不是,它依赖于语义页面。如果语义是蹩脚的,你的代码不会“猜测”什么是有意义的。我用的可读性,您的评论链接,和我看到的许多页面上我试着去阅读它没有提供任何的结果,不是在谈论一个体面的一个。

如果有人把一个表中的内容,你就死定了。尝试在一个phpBB论坛可读性,你会明白我的意思。

如果你想这样做,去与<p></p>一个正则表达式,或解析DOM。

只是图书馆为这项任务。引用他们自述:

鹅将尝试提取的以下信息:

  • 主要文本的一篇文章
  • 主图像的文章
  • 任何Youtube/Vimeo电影嵌入的文章
  • 元的描述
  • 元标记
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top