嗨,我正在尝试美丽的汤,为网络刮擦,我正在使用朱皮特笔记本。我编写了soup.prettify()和print(soup.prettify()),当我使用第一个时,html没有得到很好的打印,但是当我将它与print一起使用时,HTML是以结构化的方式打印的?可能是什么原因?
发布于 2017-10-06 03:05:51
一个显示格式化字符串的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(),它周围的引号表示它是一个字符串,都在一行上。
https://stackoverflow.com/questions/46597551
复制相似问题