工具:python2.7版本+pycharm
模块:urllib、urllib2、BeautifuSoup4模块(解析器lxml、html)
课题:BeautifuSoup原理详解,项目实战应用!
目标:1、了解Beautifulsoup库
2、学会Beautifulsoup库及其参数
3、通过一个项目使用beautifulsoup4模块爬取内容
HTML文件其实就是由一组尖括号构成的标签组织起来的,每一对尖括号形式一个标签,标签之间存在上下关系,形成标签树;因此可以说Beautiful Soup库是解析、遍历、维护“标签树”的功能库。
p标签:<p></p>:标签Tag ——一般,标签名都是成对出现的(位于起始和末尾),例如P;在第一个标签名之后可以有0到多个属性,表示标签的特点
<p class="title">...</p>——中间的class属性,其值为“title ”(属性是由键和值,键值对构成的)
通常,Beautiful Soup库的使用:
from bs4 import BeautifulSoup #主要使用BeautifulSoup类
事实上可以认为:HTML文档和标签树,BeautifulSoup类是等价的
Beautiful Soup库解析器:
bs4的HTML解析器:BeautifulSoup(mk,'html.parser')——条件:安装bs4库
lxml的HTML解析器:BeautifulSoup(mk,'lxml')——pip install lxml
lxml的XML解析器:BeautifulSoup(mk,'xml')——pip install lxml
html5lib的解析器:BeautifulSoup(mk,'html5lib')——pip install html5lib
Beautiful Soup类的基本元素:
1、Tag——标签,最基本的信息组织单元,分别用<>和</>表明开头和结尾
2、Name——标签的名字,<p>...</p>的名字是'p',格式:<tag>.name
3、Attributes——标签的属性,字典形式组织,格式:<tag>.attrs
4、NavigableString——标签内非属性字符串,<>...</>中的字符串,格式:<tag>.string
5、Comment——标签内字符串的注释部分,一种特殊的Comment类型(尖括号叹号表示注释开始:<!--This is a commet-->)
获取标签的方法:
from bs4 import BeautifulSoup
soup = BeautifulSoup(demo,'html.parser')
soup.a.name #a标签的名字
soup.a.parent.name #a标签的父标签的名字
soup.a.parent.parent.name #a标签的父标签的父标签名字
tag = soup.a
tag.attrs #a标签的属性
soup.a.string #获得a标签内非属性字符串(NavigableString )注意:soup.b.string也可能是获得Comment标签;可都过类型进行判断
好了废话不多说,大家看视频吧!有需要视频源文件的可以找小编哦^_^