请教beautifulsoup解析html

2025-05-09 02:04:57
推荐回答(1个)
回答(1):

实例:
#!/usr/bin/python# -*- coding: UTF-8 -*-from bs4 import BeautifulSoupimport re#待分析字符串html_doc = """


The Dormouse's story




The Dormouse's story



Once upon a time there were three little sisters; and their names were
Elsie,
Lacie
and
Tillie;
and they lived at the bottom of a well.



...


"""# html字符串创建BeautifulSoup对象soup = BeautifulSoup(html_doc, 'html.parser', from_encoding='utf-8')#输出第一个 title 标签print soup.title#输出第一个 title 标签的标签名称print soup.title.name#输出第一个 title 标签的包含内容print soup.title.string#输出第一个 title 标签的父标签的标签名称print soup.title.parent.name#输出第一个 p 标签print soup.p#输出第一个 p 标签的 class 属性内容print soup.p['class']#输出第一个 a 标签的 href 属性内容print soup.a['href']'''
soup的属性可以被添加,删除或修改. 再说一次, soup的属性操作方法与字典一样
'''#修改第一个 a 标签的href属性为 http://www.baidu.com/soup.a['href'] = 'http://www.baidu.com/'#给第一个 a 标签添加 name 属性soup.a['name'] = u'百度'#删除第一个 a 标签的 class 属性为del soup.a['class']##输出第一个 p 标签的所有子节点print soup.p.contents#输出第一个 a 标签print soup.a#输出所有的 a 标签,以列表形式显示print soup.find_all('a')#输出第一个 id 属性等于 link3 的 a 标签print soup.find(id="link3")#获取所有文字内容print(soup.get_text())#输出第一个 a 标签的所有属性信息print soup.a.attrsfor link in soup.find_all('a'): #获取 link 的 href 属性内容
print(link.get('href'))#对soup.p的子节点进行循环输出 for child in soup.p.children:
print(child)#正则匹配,名字中带有b的标签for tag in soup.find_all(re.compile("b")):
print(tag.name)