BeautifulSoup 安装和使用

安装BeautifulSoup

pip install beautifulsoup4

引用注意大小写

from bs4 import BeautifulSoup

获取一个html

url = 'http://gc.chetianbao.com/admin'
res = requests.get(url)
res.encoding = res.apparent_encoding;

BeautifulSoup解析html html.parser 表示html解析器

soup = BeautifulSoup(res.text,'html.parser');

BeautifulSoup打开本地文件

soup = BeautifulSoup(open('index.html'),'html.parser')

打印格式化 更好的阅读:

print(soup.prettify())

Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种:

  • Tag
  • NavigableString
  • BeautifulSoup
  • Comment

Tag

Tag 是什么?通俗点讲就是 HTML 中的一个个标签,例如:
<a>,<div>,<title>

对于 Tag,它有两个重要的属性,是 name 和 attrs

  • name: 获取名称 soup.a.name 输出a
print(soup.a.name)
  • attrs的方法
#获取所有的属性
print(soup.div.attrs)
#{'class': ['cp-container']}

#获取一个tag的属性
print(soup.p['class'])
#['cp-content-left-small']

NavigableString

NavigableString获取标签内部的文件 使用.string即可,例如

print(soup.p.string)
#哈哈我是文字

来检查一下它的类型

print(type(soup.p.string))
#<class 'bs4.element.NavigableString'>

BeautifulSoup

BeautifulSoup 对象表示的是一个文档的全部内容.大部分时候,可以把它当作 Tag 对象,是一个特殊的 Tag,我们可以分别获取它的类型



print type(soup.name)
#<type 'unicode'>
print soup.name 
# [document]
print soup.attrs 
#{} 空字典

Comment

Comment 对象是一个特殊类型的 NavigableString 对象,其实输出的内容仍然不包括注释符号

print soup.a
print soup.a.string
print type(soup.a.string)

运行结果如下



<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>
 Elsie 
<class 'bs4.element.Comment'>

推荐阅读更多精彩内容