`
john2007
  • 浏览: 77828 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

htmlparser 解析html标签中文属性且未加标签 bug解决办法

阅读更多

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(HTML页面解析)例子

    HTMLParser是Python中用于解析HTML文档的一个库,它允许开发者以事件驱动的方式处理HTML文档的结构。这个库特别适用于从不规范的HTML源码中提取数据,因为网页内容的格式可能会因各种原因而不尽完美。在本例中,我们...

    htmlparser解析html分页

    HTMLParser是一个用于解析HTML文档的库,尤其在处理非结构化或不标准的HTML时非常有用。这个库可能被用于从网页中提取数据,比如在爬虫项目中,或者进行自动化测试时解析页面内容。本篇文章将深入探讨HTMLParser的...

    扩展HTMLParser对自定义标签的处理能力

    资源名称:扩展HTMLParser对自定义标签的处理能力内容简介: HTMLParser是一个用来解析HTML文档的开放源码项目,它具有小巧、快速、使用简单的特点以及拥有强大的功能。 现在该项目的最新版本是Integration Build ...

    java解析html工具htmlparser的jar包及api文档

    HTMLParser是一个Java库,专为解析HTML而设计。它提供了对HTML文档的解析能力,使得开发者可以方便地处理网页内容,提取有用的信息或者进行数据抓取。这个工具在IT行业中,尤其是在Web开发和数据处理领域,有着广泛...

    Html解析助手htmlparser.jar

    HTML(HyperText Markup Language)是用于创建网页的标准标记语言...总之,`htmlparser.jar`是一个强大且灵活的HTML解析工具,它提供了一种高效的方法来处理和分析HTML文档,为Java开发者在处理HTML任务时提供了便利。

    htmlparser解析Html的jar包和源文件包(两个)

    HTMLParser是一款专为Java开发人员设计的开源库,用于解析HTML文档。这个工具包小巧而强大,能够处理不规则的HTML结构,对于处理网络爬虫、网页数据提取或需要解析HTML内容的应用程序来说,是非常实用的。在提供的...

    解析htmlparser的所有jar包

    它可以识别并处理标签的嵌套、未闭合的标签以及不正确的属性值。 4. **过滤和转换**:你可以通过自定义处理器或过滤器来提取或修改HTML文档的特定部分。例如,你可以创建一个处理器来查找并替换所有链接(`&lt;a&gt;`标签...

    HTML文档解析器 HTMLParser

    它的主要任务包括识别HTML标记、处理嵌套的标签、识别属性值、处理实体引用等。在解析过程中,HTMLParser需要遵循一定的规范,如W3C的HTML5标准或旧版的HTML4标准。解析器需要灵活处理不规范的HTML代码,因为实际的...

    android 解析html (htmlParser)库和源码

    android 解析html (htmlParser)库和源码 因为一个项目需要解析一个网站上的新闻,所以找到了htmlParser这个开源的项目,删除了一些不需要的包,使其可以在android上用。 有两个工程,myhtml是库,要把它包含到...

    htmlparser_Java网页解析器

    在事件驱动模式下,HTMLParser会监听并触发一系列的解析事件,如遇到开始标签、结束标签、文本内容等。开发者可以通过注册事件处理器来响应这些事件,从而提取所需的数据。这种方式对于处理大量HTML文档且只需要关注...

    html解析的利器,htmlParser

    总结来说,`htmlParser`是一个强大且易用的HTML解析工具,它通过事件驱动的方式让开发者能够灵活地处理HTML文档。无论是简单的数据提取还是复杂的页面操作,`htmlParser`都能胜任,是HTML解析领域的一把利器。通过...

    htmlparser解析API

    它不依赖任何其他Java库,使得它成为一个轻量级且高效的解决方案。HTMLParser设计的目的是为了方便地解析、提取或修改HTML内容,适用于网页数据抓取和HTML文档处理。 在使用HTMLParser时,首先需要创建一个`Parser`...

    htmlparser.jar 源码加jar包 彻底解决乱码

    4. **标签和属性处理**:HTMLParser.jar应该还优化了HTML标签和属性的处理,以适应不同的HTML语法结构。这样,在处理不规范或者自定义的HTML标签时,也能避免因解析错误导致的乱码问题。 5. **源码可读性**:提供...

    Java正则表达式详解+基于HTMLParser解析HTML网页

    如何在Java程序中利用正则表达式实现对字符串的解析.另外,HTMLParser是一款很强大的对HTML网页进行解析的工具,其中大量地用到正则表达式.

    HtmlParser

    1. **创建自定义解析器**: 首先,我们需要继承Python的`HTMLParser`类,并重写其方法,如`handle_starttag`、`handle_endtag`和`handle_data`,以便在遇到HTML标签开始、结束或数据时执行特定操作。 2. **启动爬虫*...

    Winista.Htmlparser.Net 解析Html 的.net类库

    HtmlParser.Net是来源于Java的一个用来解析html的组件,主要用于改造或提取html。它能够高速解析html,是非常好的一个html解析和分析工具。 这个是.Net版本包括源代码和帮助文档。 版本:HTMLParser.Net - Community...

    跨平台的Html解析代码_武稀松_HtmlParser.rar

    【标题】"跨平台的Html解析代码_武稀松_HtmlParser.rar" 涉及的是一个关于跨平台HTML解析的编程项目,由开发者武稀松创建。这个项目的核心是HtmlParser,它可能是一个用Delphi编写的库或框架,旨在帮助程序员在不同...

    c#版htmlparser htmlparser.dll htmlparser源代码

    HTMLParser是一款用于解析HTML文档的库,主要针对C#编程语言设计。在.NET环境中,开发者经常需要处理HTML数据,例如从网页抓取信息或者进行网页自动化。HTMLParser库提供了便捷的方式来解析复杂的HTML结构,提取所需...

    基于Java的HTML文档解析器 HTMLParser.zip

    1. **解析HTML结构**:HTMLParser能够解析不规则的HTML文档,即使这些文档不符合严格的HTML规范,也能正确处理标签嵌套和属性。 2. **事件驱动模型**:HTMLParser使用事件驱动模型来解析HTML。当遇到特定的HTML元素...

    htmlparser解析

    htmlparser解析html,获得需要的字段

Global site tag (gtag.js) - Google Analytics