python提取html当中信息.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
python提取html当中信息

SGMLParser Python 默认自带 HTMLParser 以及 SGMLParser 等等解析器,前者实在是太难用了,我就用 SGMLParser 写了一个示例程序: import urllib2 from sgmllib import SGMLParser ? class ListName(SGMLParser): def __init__(self): SGMLParser.__init__(self) self.is_h4 = = [] def start_h4(self, attrs): self.is_h4 = 1 def end_h4(self): self.is_h4 = def handle_data(self, text): if self.is_h4 == 1: .append(text) ? content = urllib2.urlopen(/browse/cat-0.htm).read() listname = ListName() listname.feed(content) for item in : print item.decode(gbk).encode(utf8)很简单,这里定义了一个叫做?ListName?的类,继承?SGMLParser?里面的方法。使用一个变量?is_h4?做标记判定 html 文件中的?h4?标签,如果遇到?h4?标签,则将标签内的内容加入到?List?变量?name?中。解释一下?start_h4()?和?end_h4()?函数,他们原型是 SGMLParser 中的 start_tagname(self, attrs) end_tagname(self) tagname?就是标签名称,比如当遇到?pre,就会调用?start_pre,遇到?/pre,就会调用end_pre。attrs?为标签的参数,以?[(attribute, value), (attribute, value), ...]?的形式传回。 输出: 虚拟票务 数码市场 家电市场 女装市场 男装市场 童装童鞋 女鞋市场 男鞋市场 内衣市场 箱包市场 服饰配件 珠宝饰品 美容市场 母婴市场 家居市场 日用市场 食品/保健 运动鞋服 运动户外 汽车用品 玩具市场 文化用品市场 爱好市场 生活服务 如果有乱码,可能是与网页编码不一致,需要替换最后一句?deconde()?的参数,我在香港淘宝默认用的是繁体编码。各位可以 copy 上面的代码自己试试,把淘宝的商品目录抓下来,就是这么简单。稍微改改,就可以抽取二级分类等其他信息 python的SGMLParser模块处理html解析非常的方便,它是处理网页解析的好帮手,能够将HTML 处理分成三步:将 HTML 分解成它的组成片段,对片段进行加工,接着将片段再重新合成 HTML。第一步是通过 sgmllib.py 来完成的,它是标准 Python 库的一部分。 理解本章的关键是要知道 HTML 不只是文本,更是结构化文本。这种结构来源于开始与结束标记的或多或少分级序列。通常您并不以这种方式处理 HTML ,而是以文本方式 在一个文本编辑中对其进行处理,或以可视的方式 在一个浏览器中进行浏览或页面编辑工具中进行编辑。sgmllib.py 表现出了 HTML 的结构。 sgmllib.py 包含一个重要的类:SGMLParser。SGMLParser 将 HTML 分解成有用的片段,比如开始标记和结束标记。在它成功地分解出某个数据为一个有用的片段后,它会根据所发现的数据,调用一个自身内部的方法。为了使用这个分析器,您需要子类化 SGMLParser 类,并且覆盖这些方法。这就是当我说它表示了 HTML 结构 的意思:HTML 的结构决定了方法调用的次序和传给每个方法的参数。 SGMLParser 将 HTML 分析成 8 类数据,然后对每一类调用单独的方法: 开始标记 (Start tag) 是开始一个块的 HTML 标记,像 、、 或 等,或是一个独一的标记, 像 或 等。当它找到一个开始标记 tagname, SGMLParser 将查找名为 start_tagname 或 do_tagname 的方法。 例如,当它找到一个 标记,它将查找一个 start_pre 或 do_pre 的方法。 如果找到了,SGMLParser 会使用这个标记的属性列表来调用这个方法; 否则,它用这个标记的名字和属性列表来调用 unknown_starttag 方法。 结束标记 (End tag) 是结束一个块的 HTML 标记,像 、、 或 等。 当找到一个结束标记时,SGMLPa

文档评论(0)

ktj823 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档