BeautifulSoup简记
来源:互联网 发布:做菜单用什么软件 编辑:程序博客网 时间:2024/06/07 13:37
对象类型
- BeautifulSoup对象
- Tag对象
- NavigableString对象
html_doc = """<html><head><title>The Dormouse's story</title></head><p class="title"><b>The Dormouse's story</b></p><p class="story">Once upon a time there were three little sisters; and their names were<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;and they lived at the bottom of a well.</p><p class="story">...</p>"""from bs4 import BeautifulSoupsoup = BeautifulSoup(html_doc, 'lxml')
第一部分: 文档结构
# 得到文档结构中第一个符合条件的元素,Tag对象soup.a # <a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,# 处理子节点关系soup.body.contents #contents获得的是一个数组soup.body.children # children 获得的是一个可迭代的对象soup.body.descendants# 获取字符串内容soup.body.string # 只能得到其第一层子节点的字符串内容,多个子节点则无法解析soup.body.strings # 多个子节点是strings得到一个列表soup.body.stripped_strings # 去掉多余的回车和空格行# 父节点soup.body.parent # 顶层节点时BeautifulSoup对象soup.body.parents# 兄弟节点soup.body.nex_siblingsoup.body.next_siblingssoup.body.previous_siblingsoup.body.previous.siblings# soup.body.next_elements/element# soup.body.previous_elements/element
第二部分:使用条件搜索文档树
soup.body.find()soup.body.find_all()soup.body.find(['a', 'b'])soup.body.find_all(name, attrs, recursive, text **kw)# 每个参数可以接受的数据类型有:"字符串,正则,函数,列表等"# 第一个参数表示tag匹配'a'或者'b'# 第一个参数还可以为一个函数,函数返回true或者false,传入的是tag值# 第二个参数可以指定tag的属性,注意class属性使用class_关键字# recursive为false表示搜索第一层,text表示搜索匹配字符串# kw如果不是函数内置的关键字,则被认为是tag的属性进行匹配# 简化方法:find_all由于很常用,可以通过BeautifulSoup和tag对象# 的调用方式来方便的调用find_all方法,如下:soup('a', class_='sister')soup.find('a', class_='sisiter')# find , find_parents(), find_parent()# find_next_siblinhd find_next_sibling()# find_previous_sibling find_previous_siblings# 以上这些都和find_all同样的使用方法,同样的参数值。
第三部分:使用css来搜索
soup.select()# 依赖于标准css选择器
第四部分:修改文档书
# pass,暂时用不上
第五部分: 输出
soup.prettify() # 美化输出str(soup) # 压缩输出soup.get_text() # 解析所有的字符串
第六部分:优化内存
strainer = SoupStrainer('a') # 像find_all的参数一样调用创建# SoupStrainer类型对象soup = BeautifulSoup(htmldoc, 'lxml', parse_only=strainer)
阅读全文
0 0
- BeautifulSoup简记
- 简记
- 简记
- 简记
- 简记
- 简记
- BeautifulSoup
- BeautifulSoup
- BeautifulSoup
- beautifulsoup
- BeautifulSoup
- BeautifulSoup
- BeautifulSoup
- BeautifulSoup
- BeautifulSoup
- beautifulsoup
- BeautifulSoup
- BeautifulSoup
- WaterGEMS第三讲:EPS延时计算
- dom4j 解析xml
- html5中的meter标签度量衡如何改变颜色
- 多线程拷贝文件
- 1102. Invert a Binary Tree (25)<反转二叉树>
- BeautifulSoup简记
- 【MySql】mysql中的聚集索引和非聚集索引
- linux基本权限 --修改文件所有者和所有组命令
- Ubuntu系统Tab键不能自动补全问题解决
- HEVC函数入门(16)——Slice编码
- Boostrap--组件
- MVC
- Java的反射,动态代理,模版设计模式,
- socket(套接字)在服务器端和客户端之间的基本工作原理流程图