输出格式Beautiful Soup输出是会将HTML中的特殊字符转换成Unicode,比如“&lquot;”: soup = BeautifulSoup("“Dammit!” he said.")
unicode(soup)
# u'<html><head></head><body>\u201cDammit!\u201d he said.</body></html>'
如果将文档转换成字符串,Unicode编码会被编码成UTF-8.这样就无法正确显示HTML特殊字符了: str(soup)
# '<html><head></head><body>\xe2\x80\x9cDammit!\xe2\x80\x9d he said.</body></html>'
get_text()如果只想得到tag中包含的文本内容,那么可以嗲用 markup = '<a href="http://example.com/">\nI linked to <i>example.com</i>\n</a>'
soup = BeautifulSoup(markup)
soup.get_text()
u'\nI linked to example.com\n'
soup.i.get_text()
u'example.com'
可以通过参数指定tag的文本内容的分隔符: # soup.get_text("|")
u'\nI linked to |example.com|\n'
还可以去除获得文本内容的前后空白: # soup.get_text("|", strip=True)
u'I linked to|example.com'
或者使用 .stripped_strings 生成器,获得文本列表后手动处理列表: [text for text in soup.stripped_strings]
# [u'I linked to', u'example.com']
|
Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )
GMT+8, 2024-10-5 18:25 , Processed in 0.014805 second(s), 17 queries .