Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
589 views
in Technique[技术] by (71.8m points)

python - How do I keep whitespace in BeautifulSoup.contents

Most examples I find online show how to remove whitespace - but in my case I need to keep it.. I have

html = "I can flip this whole thing with one hand
               <span>D#m</span>
The ringleader man
<span>A#</span>                           <span>Dm</span>                          <span>A#</span>
I know~~~~ it's a fact that you'd rather just have some of me instead"
bs = BeautifulSoup(html, 'html.parser')
content = (unicode('').join(unicode(content) for content in bs.contents))

Which I expect to keep the whitespace (the "html" variable contains the contents of a pre tag) -- but it seems to replace multiple spaces with a single space.

How do I keep/get the raw contents of a given beautifulsoup parser?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The html parser seems to only keeps whitespace if the content you are parsing is in a <pre> tag -- in my case, the pre tag was removed. Adding

html = "<pre>" + html + "</pre>"

preserved the whitespace.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...