使用python提取html文件中的特定数据的实现代码

例如 具有如下结构的html文件

代码如下:

感兴趣内容1

感兴趣内容2

……

感兴趣内容n

内容1

内容2

……

内容n

我们尝试获得’感兴趣内容’ 对于文本内容,我们保存到idlist中。 可是如何标记我们遇到的文本是感兴趣的内容呢,也就是,处于

代码如下:

这里的内容

还有这里

……

以及这里的内容

思路如下

遇到

设置标记flag = true
遇到

后 设置标记flag = false
当flag 为true时遇到

设置标记getdata = true
遇到

且getdata = true,设置getdata = false

python为我们提供了sgmlparser类,sgmlparser 将 html 分析成 8 类数据[1],然后对每一类调用单独的方法:使用时只需继承sgmlparser 类,并编写页面信息的处理函数。

可用的处理函数如下:

开始标记 (start tag)
是一个开始一个块的 html 标记,象 ,, 或 等,或是一个独一的标记,象 或 等。当它找到一个开始标记 tagname,sgmlparser 将查找名为 start_tagname 或 do_tagname 的方法。例如,当它找到一个 标记,它将查找一个 start_pre 或 do_pre 的方法。如果找到了,sgmlparser 会使用这个标记的属性列表来调用这个方法;否则,它用这个标记的名字和属性列表来调用 unknown_starttag 方法。

结束标记 (end tag)
是结束一个块的 html 标记,象 ,, 或 等。当找到一个结束标记时,sgmlparser 将查找名为 end_tagname 的方法。如果找到,sgmlparser 调用这个方法,否则它使用标记的名字来调用 unknown_endtag 。

字符引用 (character reference)
用字符的十进制或等同的十六进制来表示的转义字符,象 。当找到,sgmlparser 使用十进制或等同的十六进制字符文本来调用 handle_charref 。

实体引用 (entity reference)
html 实体,象 ©ã€‚当找到,sgmlparser 使用 html 实体的名字来调用 handle_entityref 。

注释 (comment)
html 注释, 包括在 之间。当找到,sgmlparser 用注释内容来调用 handle_comment。

处理指令 (processing instruction)
html 处理指令,包括在

Posted in 未分类

发表评论