嗨,我正在尝试用于网页刮刮的美丽汤,我正在使用jupyter笔记本。我写了soup.prettify()和print(soup.prettify()),当我使用第一个时,html没有得到漂亮的打印,但是当我用它打印时,HTML是以结构化方式打印的?可能是什么原因?
答案 0 :(得分:1)
一个显示格式化字符串的repr()
,另一个显示str()
。前者是调试格式,因此您可以看到不可打印的字符,另一种是正常的显示格式。
例如:
>>> from bs4 import BeautifulSoup as soup
>>> s = soup('<html><body><p>blah blah blah</p></body><html>','html5lib')
>>> s
<html><head></head><body><p>blah blah blah</p></body></html>
>>> s.prettify()
'<html>\n <head>\n </head>\n <body>\n <p>\n blah blah blah\n </p>\n </body>\n</html>'
>>> print(s.prettify())
<html>
<head>
</head>
<body>
<p>
blah blah blah
</p>
</body>
</html>
请注意,您可以在\n
版本中看到换行符为repr()
,并且它周围的引号表示它是一个字符串,全部在一行上。