用BeautifulSoup解析html和xml字符串
对象参数说明
实例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from bs4 import BeautifulSoup
import re
#待分析字符串
html_doc = """
<html>
<head>
<title>test</title>
</head>
<body>
<p>文章名</p>
</body></html>
"""
# 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.attrs
for 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)
网友评论