
爬虫(4)—— Beautiful Soup
Beautiful Soup类的基本元素
关于上述元素的一些使用
常见的使用
例:对a标签的上行遍历
注: 1、平行遍历必须发生在同一个父节点下的各个节点间 2、平行遍历不一定得到标签,需要进行一定的判断处理 3、平行遍历中,文本字符串也会被看作标签
常见的用法:
发布日期:2021-05-07 08:57:23
浏览次数:16
分类:精选文章
本文共 1967 字,大约阅读时间需要 6 分钟。
Beautiful Soup入门
简介:
Beautiful Soup 库是解析、遍历、维护“标签树”的功能库 BeautifulSoup最主要的功能是从网页抓取数据,Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。安装:
使用cmd命令行,输入命令:pip install beautifulsoup4库的基本使用
from bs4 import BeautifulSoupsoup=BeautifulSoup('data
','html.parser')soup=BeautifulSoup(open('D:abc.html'),'html.parser')
第一个参数html代码,第二个参数解析HTML的解析器
BeautifulSoup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,如果我们不安装它,则 Python 会使用 Python默认的解析器对Beautiful Soup库的检测
import requestsfrom bs4 import BeautifulSoupr = requests.get('http://python123.io/ws/demo.html')demo = r.textsoup = BeautifulSoup(demo, 'html.parser')print(soup.prettify()) # 将获取的代码以html结构进行输出
Beautiful Soup库解析器
# 获取HTML的titleimport requestsfrom bs4 import BeautifulSoupr = requests.get('http://python123.io/ws/demo.html')demo = r.textsoup = BeautifulSoup(demo, 'html.parser')print(soup.title)# 获取HTML中的某个标签,如果存在多个相同的标签只会返回第一个标签tag = soup.aprint(tag)# 获取HTML的a标签的标签名print(soup.a.name)# 获取a标签父标签的标签名print(soup.a.parent.name)# 获取a标签父标签的父标签的标签名print(soup.a.parent.parent.name)# 获取标签的所有属性(标签的属性会以字典的形式输出)print(soup.a.attrs)# 获取标签某个属性的具体值print(soup.a.attrs['href'])# 获取标签中的具体信息print(soup.a.string)
HTML的遍历
标签树的下行遍历:
# 获取某个标签的儿子标签,返回值是包含所有儿子标签的列表head = soup.headprint(head)print(head.contents)# 遍历儿子节点(注换行符也算一个标签)for child in soup.body.children: print(child)
标签树的上行遍历
for parent in soup.a.parents: if parent is None: print(parent) else: print(parent.name)
标签树的平行遍历
例:
# 对a标签进行后续遍历for sibling in soup.a.next_siblings: print(sibling)# 对a标签进行前续遍历for sibling in soup.a.previous_siblings: print(sibling)
信息组织的提取
find_all()
# 查找a标签a=soup.find_all('a')print(a)# 查找多个标签a=soup.find_all(['a','p'])print(a)# 查找HTML中有那些标签for tag in soup.find_all(True): print(tag.name)# 查找含有course属性值的p标签print(soup.find_all('p',{ 'course'}))# 查找id为link1的标签print(soup.find_all(id='link1'))
扩展方法
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年03月19日 16时47分51秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
后缀树
2019-03-06
Java高性能编程之CAS与ABA及解决方法
2019-03-06
从BIO到Netty的演变
2019-03-06
《算法导论》第二章笔记
2019-03-06
HTML `capture` 属性
2019-03-06
CSS盒子模型
2019-03-06
HTML节点操作
2019-03-06
浏览器页面呈现过程
2019-03-06
HTML5新特性
2019-03-06
async/await剖析
2019-03-06
cmp命令
2019-03-06
一次编辑
2019-03-06
od命令
2019-03-06
简单工厂模式
2019-03-06
代理模式
2019-03-06
Js中Currying的应用
2019-03-06
长按键入
2019-03-06
Vuex和普通全局对象
2019-03-06
上升下降字符串
2019-03-06
JavaScript中的链式调用
2019-03-06