bs4库
from bs4 import BeautifulSoup
soup=BeautifulSoup(html,”html.parser”)生成soup对象
soup.html# 字符串输出html
soup.prettify()
soup.p # html的第一个p标签
tsoup.p.attrs
p标签的属性值 {‘class’: [‘title’], ‘name’: ‘dromouse’}ype(soup.p) # <class ‘bs4.element.Tag’>
soup.p.attrs[‘class’] # p标签的属性 class的值
soup.p[‘class’]) # p标签的属性 class的值
soup.p.string) # p标签的文本
type(soup.p.string) # <class ‘bs4.element.NavigableString’>
Comment 对象是一个特殊类型的 NavigableString 对象,其输出的内容不包括注释符号。
print(soup.a.string) # Elsie
print(type(soup.a.string)) # <class ‘bs4.element.Comment’>
soup.find_all(attrs={“data-foo”: “value”})
查找所有attrs属性的标签
soup.find(class_=“bmsg”)
查找所有class为bmsg的标签,class后面记得加一个下划线
p_list = soup.find_all(‘p’) # 找到所有p标签
soup.find_all(id=‘link2’)#查找所欲id为link2的标签
soup.find_all(text=“Elsie”)#查找文本内容为Elisie的标签
soup.find_all(href=re.compile(“elsie”), id=‘link1’)
查找id为link1,链接包含re.compile(“elsie”)形式的标签
以上所欲传入的值也可以是正则表达式形式,列表
soup.find_all(text=[“Tillie”, “Elsie”, “Lacie”])
selsect选择器查找
p_list = soup.select(‘p’) #标签选择器
class_list = soup.select(’.sister’) # 类选择器
tag_list = soup.select(’#link1’) # id选择器
tag_list = soup.select(‘p .sister’) # 后代选择器
attr_list = soup.select(‘a[class=“sister”]’) # 属性选择器