Beautiful Soup 4 方法便捷查询
BS4便捷查询
准备 :
import requests, re
from bs4 import BeautifulSoup, NavigableString
URL = 'www.XXX.com'
res = requests.get(URL)
soup = BeautifulSoup(res.text, 'lxml') # 使用lxml解析器需要安装C语言库,不想装可以用内置的html.parser, 当然也有其他选项:["lxml-xml"] / "xml" / "html5lib"
属性
子节点
soup.contents
soup.children
soup.descendants # 所有子节点
父节点
soup.parent
soup.parents
兄弟节点
soup.next_sibling
soup.next_siblings
soup.previous_sibling
soup.previous_siblings
soup.next_element
soup.next_elements
soup.previous_element
soup.previous_elements
格式化输出
soup.prettify()
str(soup)
soup.get_text('|', strip=True) # '|'是分隔符, strip去空白
soup.text # 也可以使用 get_text()
soup.string # 如果只有一个,返回包含的文本信息
soup.strings # 如果有多个子节点,则返回 None
soup.stripped_strings # 去除多余空格空行
搜索文档树
soup.find()
soup.find_all(['a','b']) # 查找这两个标签
soup.find_all(re.complie("^b")) # 过滤器
soup.find_all(True) # 所有Tag,不会返回字符串节点
soup.find_all(匹配方法) # 自定义方法 teturn True | False
soup.find_all(name, attrs, recursive, string, **kwargs)
# name : tag 的 name 如 : img
# attrs : tag 的 属性 如 : class
# BS4会检索当前tag的所有子孙节点,如果只想搜索tag的直接子节点,可以使用参数 recursive=False
# string : 匹配包含的文本信息
# kwargs : 如 id="123"
# limit : 限制最多返回多少个
soup.title(string=True) # 等同于soup.title.find_all(string=True)
soup.find_parent()
soup.find_parents()
...
soup.select(selector) # selector : 标签选择器
soup.select_one()
修改文档树
soup = BeautifulSoup('<b class="boldest">Extremely bold</b>')
tag = soup.b
tag.name = "div"
tag["class"] = "cls"
tag.string = "New String"
tag.append("str")
new_tag = soup.new_tag("tag_name", href="http://...")
tag.append(new_tag)
tag.insert(index, "str")
tag.insert_before("str" | tag)
tag.insert_after()
tag.clear() # 清楚标签内文本
tag.extract() # 将当前tag移除文档树,并作结果返回
tag.decompose() # 将当前tag移除文档树,并完全销毁
tag.replace_with() # 将当前tag移除文档树,并作结果返回 且用新的节点替换
tag.wrap(soup.new_tag("div")) # 用div包装
tag.a.unwrap() # 解包,移除tag内的所有a标签,并返回
Beautiful Soup 4 方法便捷查询的更多相关文章
- 转:Beautiful Soup
Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时 ...
- Beautiful Soup教程 转
Python中使用Beautiful Soup库的超详细教程 转 http://www.jb51.net/article/65287.htm 作者:崔庆才 字体:[增加 减小] 类型:转载 时间:20 ...
- python中html解析-Beautiful Soup
1. Beautiful Soup的简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: Beautiful Soup提供一些简单的.pyt ...
- Python之Beautiful Soup的用法
1. Beautiful Soup的简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: Beautiful Soup提供一些简单的.pyt ...
- Beautiful Soup 学习手册
Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式 快速开始 下面的一段HTML代码将作为例 ...
- Python爬虫利器二之Beautiful Soup的用法
上一节我们介绍了正则表达式,它的内容其实还是蛮多的,如果一个正则匹配稍有差池,那可能程序就处在永久的循环之中,而且有的小伙伴们也对写正则表达式的写法用得不熟练,没关系,我们还有一个更强大的工具,叫Be ...
- python Beautiful Soup的使用
上一节我们介绍了正则表达式,它的内容其实还是蛮多的,如果一个正则匹配稍有差池,那可能程序就处在永久的循环之中,而且有的小伙伴们也对写正则表 达式的写法用得不熟练,没关系,我们还有一个更强大的工具,叫B ...
- Beautiful Soup 4.2.0 文档
Beautiful Soup 4.2.0 文档 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方 ...
- 爬虫---Beautiful Soup 初始
我们在工作中,都会听说过爬虫,那么什么是爬虫呢? 什么是网络爬虫 爬虫基本原理 所谓网络爬虫就是一个自动化数据采集工具,你只要告诉它要采集哪些数据,丢给它一个 URL,就能自动地抓取数据了.其背后的基 ...
随机推荐
- <VCC笔记> 溢出与unchecked
在程序运算或者数据转换的时候,由于各种数据类型有各自的范围,运算的时候,其结果如果超出这个范围,就被称之为溢出.熟悉C#的同志们应该了解用来解决溢出(Overflow)问题的checked,unche ...
- 用头发换JS的第一天
因为平时也在上班,这些都是在地铁上抽空开始看的,总结来说还是有一些收获存在,每次看都能发现一些新东西,废话不多说,开撸! JavaScript是一种网页编程语言,可以对网页的行为进行编程,简单来说HT ...
- maven配置错误之Unable to import maven project: See logs for details
很多朋友在初次使用maven时,都会出现这个问题. 一加载maven项目,即会报出Unable to import maven project这样的错误,哪怕是新的maven项目也不例外. 我查阅了很 ...
- cc31a_demo--CppPrimer_静态成员与继承-在派生类中访问基类中的static成员的方法
//*基类中的static成员,在整个继承层次中只有一个实例 //*在派生类中访问基类中的static成员的方法 //1.基类名::成员名 //2.子类名::成员名 //3.对象.成员名 //4.指针 ...
- 5种经典的Linux桌面系统
最近一直在准备Linux相关的PPT,对于一个老码农来说Linux系统自然是比较熟悉了,随口可以说出好几种Linux的版本,然而对于计算机初学者可能就知道windows操作系统.也许你告诉他你可以安装 ...
- Mac上使用brew另装ruby和gem的新玩法
[本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 众所周知,Mac ...
- JUnit单元测试%MODULE_WORKING_DIR%' does not exist
解决办法: idea > Run -> Edit Configurations>JUnit(或者application,根据自己报错的类型选择)>单独设置:选中有单元测试的类 ...
- vueX基础知识点笔记
vuex是专门用来管理vue.js应用程序中状态的一个插件.他的作用是将应用中的所有状态都放在一起, 集中式来管理.需要声明的是,这里所说的状态指的是vue组件中data里面的属性.简单的来说, 它就 ...
- linux查看当前目录下,各文件夹大小
du -lh --max-depth=1
- JS代码简洁之道--函数
函数的参数越少越好 有一个准则是:如果你的函数参数超过两个,就应该改为对象传入. 这样做是合理的,因为当函数参数超过两个时,参数顺序开始变得难以记忆,而且容易出现一种很尴尬的情况:比如我只需要传入第三 ...