一、beautifulsoup4(美味的汤)
1.它通过定位HTML的标签来格式化和组织复杂的网络信息。
2.beautifulsoup4不是python的标准库,所以需要自己安装。
3.其官方文档—中文版
安装
-
Windows系统安装
- pip install beautifulsoup4
-
可以进行简单的测试
from bs4 import BeautifulSoup
如果没有问题就说明安装没有问题
二、beautifulsoup4 的使用
1、bs4 中最常用的模块就是BeautifulSoup
-
例如下面的代码,抓取整个页面,生成一个BeautifulSoup对象
from urllib.request import urlopen from bs4 import BeautifulSoup html = urlopen('http://www.pythonscraping.com/pages/page1.html') bsObj = BeautifulSoup(html)
-
通过BeautifulSoup对象,可以抽取想要的内容
-
下面的代码会抽取包含在<span class=“green”></span>标签内的文字
namelist = bsObj.findAll('span',{'class':'green'})
-
然后通过for循环逐一打印出来
for name in namelist: print(name.get_text())
-
此处关于get_text()的用法说明一下
- get_text()会把正在处理的HTMl文档中的所有标签全部清除,返回一个只包含文字的字符串。
2、BeautifulSoup中的find() 函数和findAll()函数
-
文档里关于两个函数的定义是这样的
find(tag, attributes, recursive, text, keywords) findAll(tag, attributes, recursive, text, limit, keywords)
-
其中:
- tag: 标签参数
可以传入一个或者多个标签的名称组成的python列表作为标签参数 - attributes: 属性参数
是一个用字典封装一个标签的若干属性和属性值 - recursive: 递归参数
是一个布尔值
如果设置为True,就会根据要求去抓取标签参数的所有子标签,以及子标签的所有子标签。
如果设置为False,就职查找文档的一级标签。 - text: 文本参数
他是用你标签的文本内容去匹配,而不是用标签的属性 - limit: 范围限制参数
find函数其实就相当于findAll函数的limit参数设置为1时的情形 - keyword: 关键词参数
可以选择具有指定属性的标签
- tag: 标签参数
3、BeautifulSoup中其他的对象
- NavigableString对象
用来表示标签里的文字 - Comment对象
用来查找HTML文档的注释标签