HTML格式化:
Python的BeautifulSoup:import BeautifulSoup
soup = BeautifulSoup.BeautifulSoup(html)
利用这个包把html里script,style给清理了:[script.extract() for script in soup.findAll('script')]
[style.extract() for style in soup.findAll('style')]
清理完成后,这个包有一个prettify()函数,把代码格式给搞的标准一些:soup.prettify()
用正则表达式,把所有的HTML标签全部清理了:reg1 = re.compile("<[^>]*>")
content = reg1.sub('',soup.prettify())
剩下的都是纯文本的文件了,通常是一行行的,把空白行给排除了
BeautifulSoup不仅仅只是可以查找,定位和修改文档内容,同样也可以用一个好的 格式进行输出显示。BeautifulSoup可以处理不同类型的输出:格式化的输出
非格式化的输出
格式化输出
BeautifulSoup中有内置的方法prettfy()来实现格式化输出。比如:
soup.prettify()自动就帮你把格式处理好了
prettify()可以用于BeautifulSoup对象也可以用于任何标签对象。
非格式化输出
可以使用str()和unicode()来进行非格式化输出。
如果我们对BeautifulSoup对象和标签对象使用str()方法,那么得到的就是一般的字符串输出样式。
我们也可以使用前篇讲到的encode()方法来指定编码格式的输出。
对BeautifulSoup对象或标签对象使用decode()方法来得到Unicode字符串。
使用get_text()
从网页中得到文本是常见的工作,BeautifulSoup提供了get_text()方法来达到目的。
如果我们只想得到BeautifulSoup对象的文本或标签对象的文本内容,我们可以使用get_text()方法。比如:
get_text()方法返回BeautifulSoup对象或标签对象中的文本内容,其为一个Unicode字符串。但是get_text()有个问题是它同样也会返回javascript代码。去掉javascript代码的方法如下:[x.extract() forx insoup_packtpage.find_all('script')]
这样就会用处掉所有脚本元素。