beautifulsoup4学习小记
pip安装
pip install beautifulsoup4
或easy_install
easy_install beautifulsoup4
或源码安装
python setup.py install
BeautifulSoup除了内置HTML解析器,还支持一些第三方解析去,比如html5lib,lxml等,可以安装之后,在初始化BeautifulSoup对象的时候构建
构建BeautifulSoup对象
一般可以处理两种html文件,一种是在线获取再处理,一种是直接处理本地文件
import requests
from bs4 import BeautifulSoup
# 通过requests获取
html = requests.get('http://www.pm25.com/xian.html')
soup = BeautifulSoup(html.text)
# 处理本地文件
soup = BeautifulSoup(open('test.html'))
四种对象
BeautifulSoup主要有四类对象 Tag,NavigableString,BeautifulSoup,Comment
Tag
Tag有两种重要的属性 name和attrs
soup.p.name
soup.p.attrs 包括class在内的p标签的所有属性
soup.p[‘class’] class属性
soup.p.get(‘class’) 与上一个作用相同,获取class属性
soup.p[‘class’] = ‘newClass’ 修改class属性
NavigableString
获取标签的内容使用 .string或get_text()
BeautifulSoup
BeautifulSoup 对象表示的是一个文档的全部内容
Comment
打印前可以判断一下是否为注释
if type(soup.a.string)==bs4.element.Comment:
print(soup.a.string)
遍历文档树
- 直接子节点
.contents可以将tag的子节点以列表的方式输出
.children 返回一个list生成器对象,可以通过迭代输出