文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>htmlparser 解析html标签中文属性且未加标签 bug..

htmlparser 解析html标签中文属性且未加标签 bug..

时间:2010-05-06  来源:pikyshen

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")

 

没有错误。

 

相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载