最近做一些网页解析的工作,数据量不大,为了方便开发,选择了python。解析静态网页,通常选用正则表达式和BeautifulSoup
正则表达式的好处是,相对BeautifulSoup速度快,能精确的取出网页中你需要的那部分,其他的html代码则直接略过,效率高;不足之处在于,如果需要网页页面中的很多内容,就需要写很多的正则表达式,不利维护,效率也会大幅降低。另外值得注意的是,re库处理的是‘utf-8’编码的文件(unicode的文件好像也行,但会转成utf-8),处理后得到的数据也是‘utf-8’编码的
BeautifulSoup的名气就不用多说了,非常强大的处理静态html文件的库。但是如果你只取页面中某一个小部分的内容,效率会偏低。它应该是要先构造DOM树的,所以只取页面中某个点(部分)的内容,还是可以考虑使用正则表达式来解决。同样BeautifulSoup对编码也是需要注意的,它内部使用的是unicode编码,所以最后得到的结果也是unicode,如果需要其他编码,那么取出来的内容需要用encode()来重新编码。