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 方法便捷查询的更多相关文章

  1. 转:Beautiful Soup

    Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时 ...

  2. Beautiful Soup教程 转

    Python中使用Beautiful Soup库的超详细教程 转 http://www.jb51.net/article/65287.htm 作者:崔庆才 字体:[增加 减小] 类型:转载 时间:20 ...

  3. python中html解析-Beautiful Soup

    1. Beautiful Soup的简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: Beautiful Soup提供一些简单的.pyt ...

  4. Python之Beautiful Soup的用法

    1. Beautiful Soup的简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: Beautiful Soup提供一些简单的.pyt ...

  5. Beautiful Soup 学习手册

    Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式   快速开始 下面的一段HTML代码将作为例 ...

  6. Python爬虫利器二之Beautiful Soup的用法

    上一节我们介绍了正则表达式,它的内容其实还是蛮多的,如果一个正则匹配稍有差池,那可能程序就处在永久的循环之中,而且有的小伙伴们也对写正则表达式的写法用得不熟练,没关系,我们还有一个更强大的工具,叫Be ...

  7. python Beautiful Soup的使用

    上一节我们介绍了正则表达式,它的内容其实还是蛮多的,如果一个正则匹配稍有差池,那可能程序就处在永久的循环之中,而且有的小伙伴们也对写正则表 达式的写法用得不熟练,没关系,我们还有一个更强大的工具,叫B ...

  8. Beautiful Soup 4.2.0 文档

    Beautiful Soup 4.2.0 文档 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方 ...

  9. 爬虫---Beautiful Soup 初始

    我们在工作中,都会听说过爬虫,那么什么是爬虫呢? 什么是网络爬虫 爬虫基本原理 所谓网络爬虫就是一个自动化数据采集工具,你只要告诉它要采集哪些数据,丢给它一个 URL,就能自动地抓取数据了.其背后的基 ...

随机推荐

  1. synchronized 和 java.util.concurrent.locks.Lock 的异同 ?

    主要相同点:Lock 能完成 synchronized 所实现的所有功能 主要不同点:Lock 有比synchronized 更精确的线程语义和更好的性能. synchronized 会自动释放锁,而 ...

  2. 关于Api的那些事儿!

    工作中一直在写Api数据接口,但大部分的Api都存在这样的问题 1.接口请求的地址和参数暴露 2.重要接口返回数据明文暴露 3.APP登录态请求的数据完全性问题 4.代码层的数据完全性问题(从代码层有 ...

  3. @topcoder - 2013TCO3A D1L3@ TrickyInequality

    目录 @description@ @accepted code@ @accepted code@ @details@ @description@ 现有不等式组: \[\begin{cases} x_1 ...

  4. 数据处理一条龙!这15个Python库不可不知

    如果你是一名数据科学家或数据分析师,或者只是对这一行业感兴趣,那下文中这些广受欢迎且非常实用的Python库你一定得知道. 从数据收集.清理转化,到数据可视化.图像识别和网页相关,这15个Python ...

  5. Charles抓包1-Charles安装汉化(附正版注册码)

    目录 1.下载&&安装 2.汉化 1.下载&&安装 charles官网 charles下载 下载后直接安装即可. 2.汉化 下载提供的汉化包charles.jar(加群 ...

  6. 错误处理函数-lr_continue_on_error

    在脚本的Run-time Settings中,可以设置在脚本运行过程中发生错误的处理方式.进入到Run-time Settings中,切换到Miscellaneous标签页,可以看到Error Han ...

  7. cb30a_c++_STL_算法_查找算法_(3)search_find_end

    cb30a_c++_STL_算法_查找算法_(3)search_find_endsearch()pos = search(ideq.begin(), ideq.end(), ilist.begin() ...

  8. MySQL的使用方法和视图、索引、以及存储过程的一些简单方法

    一,基本概念 1, 常用的两种引擎:         (1) InnoDB        a,支持ACID,简单地说就是支持事务完整性.一致性:         b,支持行锁,以及类似ORACLE的一 ...

  9. JavaWeb网上图书商城完整项目--day02-8.提交注册表单功能之dao、service实现

    1.发送邮件 发送邮件的时候的参数我们都写在了配置文件中,配置文件放在src目录下,可以使用类加载器进行加载该数据 //向注册的用户发送邮件 //1读取配置文件 Properties properti ...

  10. css样式学习笔记

    视频参见php中文网玉女心经视频教程 讲解的相当的清楚和明白 第1章     :css快速入门 1.1     什么是css 改变html框架的样式. 1.2     css的三种引入形式 第一种形式 ...