格式化输出 prettify()方法,将文档树格式化以后以Unicode码输出,每个标签都独占一行 BeautifulSoup 对象和它的tag节点都可以调用 prettify() 方法压缩输出 如果只想得到结果字符串,不重视格式,那么可以对一个 BeautifulSoup 对象或 Tag 对象使用Python的 unicode() 或 str() 方法 str() 方法返回UTF-8编码的字符串,可以指定 编码 的设置. 还可以调用 encode() 方法获得字节码或调用 decode() 方法获得Unicode.get_text() 方法 如果只想得到tag中包含的文本内容,可以用 get_text() 方法 这个方法获取到tag中包含的所有文本内容包括子孙tag中的内容,并将结果作为Unicode字符串返回 可以通过参数指定tag的文本内容的分隔符,还可以去除获得文本内容的前后空白: markup = '\nI linked to example.com\n' soup = BeautifulSoup(markup) soup.get_text("|", strip=True) u'I linked to|example.com'编码: 任何HTML或XML文档都有自己的编码方式,比如ASCII 或 UTF-8,但是使用Beautiful Soup解析后,文档都被转换成了Unicode。 BeautifulSoup 对象的 .original_encoding 属性记录了自动识别编码的结果, 用来识别用了什么编码方式。 通过传入 from_encoding 参数来指定编码方式: soup = BeautifulSoup(markup, from_encoding="iso-8859-8") 可以把错误编码作为 exclude_encodings 参数, 这样文档就不会尝试使用这种编码了解码了. 译者备注: 在没有指定编码的情况下, BS会自己猜测编码, 把不正确的编码排除掉, BS就更容易猜到正确编码. soup = BeautifulSoup(markup, exclude_encodings=["ISO-8859-7"])通过Beautiful Soup输出文档时,不管输入文档是什么编码方式,输出编码均为UTF-8编码 如果不想用UTF-8编码输出,可以将编码方式传入 prettify() 方法: print(soup.prettify("latin-1")) 还可以调用 BeautifulSoup 对象或任意节点的 encode() 方法,就像Python的字符串调用 encode() 方法一样: soup.p.encode("latin-1")UnicodeDammit 是BS内置库, 主要用来猜测文档编码. 编码自动检测 功能可以在Beautiful Soup以外使用,检测某段未知编码时,可以使用这个方法: from bs4 import UnicodeDammit dammit = UnicodeDammit("Sacr\xc3\xa9 bleu!") print(dammit.unicode_markup) # Sacré bleu! dammit.original_encoding # 'utf-8' 如果Python中安装了 chardet 或 cchardet 那么编码检测功能的准确率将大大提高. 输入的字符越多,检测结果越精确,如果事先猜测到一些可能编码, 那么可以将猜测的编码作为参数,这样将优先检测这些编码: dammit = UnicodeDammit("Sacr\xe9 bleu!", ["latin-1", "iso-8859-1"]) print(dammit.unicode_markup) # Sacré bleu! dammit.original_encoding # 'latin-1'
详细解决方案
爬虫系列13.BeautifulSoup 输出
热度:37 发布时间:2024-01-04 14:19:51.0
相关解决方案
- 使用 Python (BeautifulSoup 4) 的网页抓取工具不起作用
- BeautifulSoup:如何跳过 find_all 中的子节点?
- Python(BeautifulSoup)-For循环返回一格的所有结果,而不是预期的一个值
- 如何使用 BeautifulSoup 加速解析?
- 爬虫实战 链家房源爬取(BeautifulSoup) 详细分析 2020最新
- 爬虫中连接数据库,两种获取网页内容的方式,BeautifulSoup, 正则表达式的使用,爬json格式文件
- beautifulsoup in python
- 爬虫前的小准备----BeautifulSoup
- 简单比较 BeautifulSoup 和 Xpath 的性能
- 在Pycharm中已经安装了bs4和BeautifulSoup4,仍出错:ImportError: cannot import name 'BeautifulSoup' from 'bs4'
- python 爬虫:BeautifulSoup(bs4) 找不到对应的元素
- python3 2018分布式爬虫教程 -6 BeautifulSoup
- Python3 HTML数据解析(lxml/BeautifulSoup/JsonPath)
- 【Python】在Pycharm中安装爬虫库requests , BeautifulSoup , lxml 的解决方法
- 【转】Python BeautifulSoup 中文乱码解决方法
- BeautifulSoup 笔记
- python库——BeautifulSoup
- 爬虫系列13.BeautifulSoup 输出
- 006 Beautifulsoup
- BeautifulSoup 获取页面中 图片的src
- 【Beautifulsoup】如何在网页中通过中文text获取标签
- Python爬虫理论Pro | (5) BeautifulSoup
- Python 学习笔记之——BeautifulSoup 库
- 网络编程的提取解析(2)——BeautifulSoup
- 动态爬取京东之---selenium+beautifulsoup+xpath提取
- 正则表达式re,xpath,beautifulsoup
- python 爬虫:正则表达式 re 与网页解析包 Beautifulsoup
- Python BeautifulSoup,bs4,使用正则化进行查找