当前位置: 主页 > 日志 > Webscraping >

Web数据抓取经验分享:如何使抓取的HTML规范化

 在数据采集时,处理不规范的HTML页面是件令人头疼的事。因为不规范的HTML页面往往会引起xpath解析失败,造成得不到正确的数据。

了解Firebug的人都知道,它的HTML视图下有一个巧妙的功能,能够自动修复不规范的HTML,以规范的形式展现。

例如,如下的一个不规范的HTML页面:

<table>
<tr>
  <td>name
  <td>age
<tr>
  <td>redice
  <td>25
</table>
 
我们看一下它在Firebug下的显示内容:
 
 
有没有能实现类似Firebug这种规范化HTML的Python库呢?
 
有。经过查找、测试,最终发现PyTidyLib库可以很好地实现这个功能。
 
 
下面是PyTidyLib库的一个测试:
 
>>> html = open('c:/html_invalid.html').read()
>>> print html
<table>
<tr>
<td>name
<td>age
<tr>
<td>redice
<td>25
</table>
>>> from tidylib import tidy_document
>>> document, errors = tidy_document(html)
>>> print document
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title></title>
  </head>
  <body>
    <table>
      <tr>
        <td>
          name
        </td>
        <td>
          age
        </td>
      </tr>
      <tr>
        <td>
          redice
        </td>
        <td>
          25
        </td>
      </tr>
    </table>
  </body>
</html>

 

有时间再测试一下这个库:http://www.egenix.com/products/python/mxExperimental/mxTidy/

[日志信息]

该日志于 2011-05-11 18:04 由 redice 发表在 redice's Blog ,你除了可以发表评论外,还可以转载 “Web数据抓取经验分享:如何使抓取的HTML规范化” 日志到你的网站或博客,但是请保留源地址及作者信息,谢谢!!    (尊重他人劳动,你我共同努力)
   
验证(必填):   点击我更换验证码

redice's Blog  is powered by DedeCms |  Theme by Monkeii.Lee |  网站地图 |  本服务器由西安鲲之鹏网络信息技术有限公司友情提供

返回顶部