bug:
利用HTMLParser解析 带有中文属性的标签,例如:"<img alt=周润发 src="/html"/>"
会出现如下错误:
raise HTMLParseError(message, self.getpos())
HTMLParser.HTMLParseError: junk characters in start tag: u'\u5468\u6da6\u53d1 src="/html"/>', at line 1, column 1
错误原因还是正则表达式惹的祸。
attrfind = re.compile(
r'\s*([a-zA-Z_][-.:a-zA-Z_0-9]*)(\s*=\s*'
r'(\'[^\']*\'|"[^"]*"|[-a-zA-Z0-9./,:;+*%?!&$\(\)_#=~@]*))?')
attrfind 没有匹配中文字符。
解决办法:
修改attrfind:
attrfind = re.compile(
ur'\s*([a-zA-Z_][-.:a-zA-Z_0-9]*)(\s*=\s*'
ur'(\'[^\']*\'|"[^"]*"|[-a-zA-Z0-9./,:;+*%?!&$\(\)_#=~@\u4e00-\u9fa5]*))?')
然后案例测试如下:
htmldata="""<img alt=周润发 src="/html"/>""".decode("utf8")
没有错误。
分享到:
相关推荐
HTMLParser是Python中用于解析HTML文档的一个库,它允许开发者以事件驱动的方式处理HTML文档的结构。这个库特别适用于从不规范的HTML源码中提取数据,因为网页内容的格式可能会因各种原因而不尽完美。在本例中,我们...
HTMLParser是一个用于解析HTML文档的库,尤其在处理非结构化或不标准的HTML时非常有用。这个库可能被用于从网页中提取数据,比如在爬虫项目中,或者进行自动化测试时解析页面内容。本篇文章将深入探讨HTMLParser的...
资源名称:扩展HTMLParser对自定义标签的处理能力内容简介: HTMLParser是一个用来解析HTML文档的开放源码项目,它具有小巧、快速、使用简单的特点以及拥有强大的功能。 现在该项目的最新版本是Integration Build ...
HTMLParser是一个Java库,专为解析HTML而设计。它提供了对HTML文档的解析能力,使得开发者可以方便地处理网页内容,提取有用的信息或者进行数据抓取。这个工具在IT行业中,尤其是在Web开发和数据处理领域,有着广泛...
HTML(HyperText Markup Language)是用于创建网页的标准标记语言...总之,`htmlparser.jar`是一个强大且灵活的HTML解析工具,它提供了一种高效的方法来处理和分析HTML文档,为Java开发者在处理HTML任务时提供了便利。
HTMLParser是一款专为Java开发人员设计的开源库,用于解析HTML文档。这个工具包小巧而强大,能够处理不规则的HTML结构,对于处理网络爬虫、网页数据提取或需要解析HTML内容的应用程序来说,是非常实用的。在提供的...
它可以识别并处理标签的嵌套、未闭合的标签以及不正确的属性值。 4. **过滤和转换**:你可以通过自定义处理器或过滤器来提取或修改HTML文档的特定部分。例如,你可以创建一个处理器来查找并替换所有链接(`<a>`标签...
它的主要任务包括识别HTML标记、处理嵌套的标签、识别属性值、处理实体引用等。在解析过程中,HTMLParser需要遵循一定的规范,如W3C的HTML5标准或旧版的HTML4标准。解析器需要灵活处理不规范的HTML代码,因为实际的...
android 解析html (htmlParser)库和源码 因为一个项目需要解析一个网站上的新闻,所以找到了htmlParser这个开源的项目,删除了一些不需要的包,使其可以在android上用。 有两个工程,myhtml是库,要把它包含到...
在事件驱动模式下,HTMLParser会监听并触发一系列的解析事件,如遇到开始标签、结束标签、文本内容等。开发者可以通过注册事件处理器来响应这些事件,从而提取所需的数据。这种方式对于处理大量HTML文档且只需要关注...
总结来说,`htmlParser`是一个强大且易用的HTML解析工具,它通过事件驱动的方式让开发者能够灵活地处理HTML文档。无论是简单的数据提取还是复杂的页面操作,`htmlParser`都能胜任,是HTML解析领域的一把利器。通过...
它不依赖任何其他Java库,使得它成为一个轻量级且高效的解决方案。HTMLParser设计的目的是为了方便地解析、提取或修改HTML内容,适用于网页数据抓取和HTML文档处理。 在使用HTMLParser时,首先需要创建一个`Parser`...
4. **标签和属性处理**:HTMLParser.jar应该还优化了HTML标签和属性的处理,以适应不同的HTML语法结构。这样,在处理不规范或者自定义的HTML标签时,也能避免因解析错误导致的乱码问题。 5. **源码可读性**:提供...
如何在Java程序中利用正则表达式实现对字符串的解析.另外,HTMLParser是一款很强大的对HTML网页进行解析的工具,其中大量地用到正则表达式.
1. **创建自定义解析器**: 首先,我们需要继承Python的`HTMLParser`类,并重写其方法,如`handle_starttag`、`handle_endtag`和`handle_data`,以便在遇到HTML标签开始、结束或数据时执行特定操作。 2. **启动爬虫*...
HtmlParser.Net是来源于Java的一个用来解析html的组件,主要用于改造或提取html。它能够高速解析html,是非常好的一个html解析和分析工具。 这个是.Net版本包括源代码和帮助文档。 版本:HTMLParser.Net - Community...
【标题】"跨平台的Html解析代码_武稀松_HtmlParser.rar" 涉及的是一个关于跨平台HTML解析的编程项目,由开发者武稀松创建。这个项目的核心是HtmlParser,它可能是一个用Delphi编写的库或框架,旨在帮助程序员在不同...
HTMLParser是一款用于解析HTML文档的库,主要针对C#编程语言设计。在.NET环境中,开发者经常需要处理HTML数据,例如从网页抓取信息或者进行网页自动化。HTMLParser库提供了便捷的方式来解析复杂的HTML结构,提取所需...
1. **解析HTML结构**:HTMLParser能够解析不规则的HTML文档,即使这些文档不符合严格的HTML规范,也能正确处理标签嵌套和属性。 2. **事件驱动模型**:HTMLParser使用事件驱动模型来解析HTML。当遇到特定的HTML元素...
htmlparser解析html,获得需要的字段