此笔记没有做太多实验,仅做参考,具体情况还要查看文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/#id4
初始化:
from bs4 import BeautifulSoup
# 从文件获取
soup = BeautifulSoup(open("html.txt", "r", encoding='utf-8'), 'lxml')
# 从string获取
html_str = '''
<html><body>
<div>
我们的祖国是花园
</div>
</body></html>
'''
soup = BeautifulSoup(html_str, 'lxml')
type(soup) # bs4.BeautifulSoup对象
type(soup.div) # bs4.element.Tag对象
#这是一个通用获取Tag对象内容的方法
#这个方法能保证拥有正确换行
#并且这个方法获取到的string会以一个换行结尾
def getContentOfTag(tag):
'''获取一个Tag对象的内容'''
content = ''
if tag != None:
for line in tag.stripped_strings:
content += line + '\n'
return content
寻找所有某类的方法:
# 查找所有,返回列表
reses = tag.find_all("span",class_="RichText ztext CopyrightRichText-richText")
# 查找第一个,相当于reses[0]
res = tag.find("span",class_="RichText ztext CopyrightRichText-richText")
#获取Tag的所有内容,包括直接内容和其子标签内容,没有换行
tag.get_text()
#如果其只有一个子标签有内容(包括其自身的内容),若是有多个子标签有内容,这个会返回None
tag.string
#获取其内容和其子标签内容的列表
tag.strings
tag.contents