Python3爬虫神器BeautifulSoup(四)——其他杂七杂八的补充

输出:

BeautifulSoup的格式化输出可以用prettify(),这个方法将文档树格式化后以Unicode编码的形式输出,BeautifulSoup的对象和节点都可以用这个方法,每个XML/HTML都占一行

如果你只想得到标签里面的内容那么你可用.get_text()这个方法,.get_text()方法还能得到包括子孙标签的内容

.get_text()中可以在括号中传入参数比如可以传入标签的分隔符。如下.get_text("/")

如果将strip的值设为True那么可以除去前后的空白,当然了输出的字符串中可能包含了很多空格或空行,使用 .stripped_strings 可以去除多余空白内容,,获得文本列表后手动处理列表。


BeautifulSoup的编码问题

网页编码有很多种,但是经过解析之后的都是Unicode编码,这是因为BeautifulSoup用了编码自动检测子库来识别编码并进行转换,我们可以用.original_encoding来查看自动识别的结果。

自动编码虽然是个好东西但是毕竟是机器的东西,难免会有出错的时候,有时候即便是结果正确,那也是在逐字节遍历全文之后才能进行判断的,这样会拖累运行速度。

如果事先就知道编码,不仅能够提高正确性,还能提升速度:

我们可以再解析BeautifulSoup对象的时候传入 from_encoding:

                soup = BeautifulSoup(markup, from_encoding="iso-8859-8","html.parser")

不管输出文档是什么编码方式,输出编码都是UTF-8如果不想用UTF-8输出的话可以在 prettify()中传入编码方式,也可以用encode编码BeautifulSoup对象或者任一节点

你可能感兴趣的:(Python3爬虫神器BeautifulSoup(四)——其他杂七杂八的补充)