导图社区 Python 爬虫 BeautifulSoup库
本导图总结了Python的BeautifulSoup库的相关知识,并且举例说明其用法。
本思维导图总结了Python Pandas库,对其提供的数据类型、操作、运算和统计分析方法进行了较为详细的介绍。
Python的Matplotlib库,主要用来进行统计图的绘制。本思维导图对其绘图方法、文本显示和绘图区域进行了总结。
本思维导图总结了Python的NumPy库,对库中主要的数据类型(对象)和相关方法或函数,进行了较为详细的总结。
社区模板帮助中心,点此进入>>
python思维导图
Java日常技术
java中io流图解
Java继承与多态
职场必看!Java编程思想思维导图
python留言网站
Python入门
python基础知识点简单总结
J2EE复习大纲
《C语言程序设计》思维导图
Python爬虫 BeautifulSoup库
库:BeautifulSoup
将网页源码整理为标签树,从而进行提取和查找
from bs4 import BeautifulSoup
BeautifulSoup对象
使用BeautifulSoup类进行初始化
两个参数,前者是网页内容,后者是解析器。解析器常用'html.parser'
例:soup = BeautifulSoup('<p>data<p>','html.parser')
BeautifulSoup类的基本元素
Tag
标签,最基本的信息组织单元,分别用<>和</>标明
例:soup = BeautifulSoup(demo, "html.parser") print(soup.a)
Name
标签的名字,<p>...</p>的名字是'p',格式:<tag>.name
Attributes
标签的属性,字典形式组织,格式:<tag>.attrs
NavigableString
标签内非属性字符串,<>...</>中字符串,格式:<tag>.string
Comment
标签内字符串的注释部分,一种特殊的Comment类型
遍历
向下遍历
.contents
子节点的列表,将<tag>所有儿子节点存入列表
例:soup = BeautifulSoup(demo, "html.parser") print(soup.head.contents)
.children
子节点的迭代类型,与.contents类似,用于循环遍历儿子节点
例:for child in soup.body.children: print(child)
.descendants
子孙节点的迭代类型,包含所有子孙节点,用于循环遍历
向上遍历
.parent
节点的父亲标签
.parents
节点先辈标签的迭代类型,用于循环遍历先辈节点
例:soup = BeautifulSoup(demo, "html.parser") for parent in soup.a.parents: if parent is None: print(parent) else: print(parent.name)
平行遍历
.next_sibling
返回按照HTML文本顺序的下一个平行节点标签
.previous_sibling
返回按照HTML文本顺序的上一个平行节点标签
迭代类型,返回按照HTML文本顺序的后续所有平行节点标签
.previous_siblings
迭代类型,返回按照HTML文本顺序的前续所有平行节点标签
例:for sibling in soup.a.next_siblings: print(sibling)
HTML格式化和编码
.prettify()方法
将网页内容格式化打印,增加换行和缩进,方便人阅读
例:print(soup.prettify())
BeautifulSoup库默认使用'utf-8'编码
查找
<>.find_all()
返回一个列表类型,存储查找的结果
完整定义:<>.find_all(name, attrs, recursive, string, **kwargs)
参数
name
对标签名称的检索字符串
例:soup.find_all('a') soup.find_all(['a','b'])
attrs
对标签属性值的检索字符串,可标注属性检索
例:soup.find_all('div', attrs={'class':''}) soup.find_all(id='link')
recursive
是否对子孙全部检索,默认为True
例:soup.find_all('a', recursive=Flase)
string
<>...</>中字符串区域的检索字符串
例:soup.find_all(string = "Python")
<>.find()
搜索且只返回一个结果,字符串类型,同find_all()参数
<>.find_parents()
在先辈节点中搜索,返回列表类型,同find_all()参数
<>.find_parent()
在先辈节点中返回一个结果,字符串类型,同find_all()参数
<>.find_next_siblings()
在后续平行节点中搜索,返回列表类型,同find_all()参数
<>.find_next_sibling()
在后续平行节点中返回一个结果,字符串类型,同find_all()参数
<>.find_previous_siblings()
在前序平行节点中搜索,返回列表类型,同find_all()参数
<>.find_previous_sibling()
在前序平行节点中返回一个结果,字符串类型,同find_all()参数