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. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(二)

    系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...

  2. 全网最全95道MongoDB面试题1万字详细解析

    1.mongodb是什么? MongoDB 是由 C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在给 WEB ...

  3. ubuntu18.04安装部署typecho个人博客

    LNMP一键安装包安装 wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnm ...

  4. @atcoder - AGC003F@ Fraction of Fractal

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个 H*W 黑白格图,保证黑格四连通. 定义分形如下:0 ...

  5. conda 管理包

    查看当前环境已经安装的包 conda list 查看指定环境中的安装包 conda list -n python27 在Anaconda 库中搜索包 conda search numpy #模糊搜索 ...

  6. numpy(深)复制一个矩阵的方法

    在用Python写代码的时候往往会遇到真复制和假复制的问题,真复制就是创建一个新的实例(instance),而假复制就是把原对象的引用赋给了新的标志符.判断是不是真复制可以使用id()这个函数. 当然 ...

  7. 【JMeter_01】JMeter介绍与环境搭建

    JMeter介绍 Apache JMeter™应用开源软件,100%纯Java应用程序,设计之初是用于负载功能测试和性能测试.但因它在实现对各种接口的调用方面比较成熟,因此,常被用做接口功能测试. J ...

  8. 漏洞复现-Office远程代码执行漏洞 (CVE-2017-11882&CVE-2018-0802)

    漏洞原理 这两个漏洞本质都是由Office默认安装的公式编辑器(EQNEDT32.EXE)引发的栈溢出漏洞(不要问什么是栈溢出,咱也解释不了/(ㄒoㄒ)/~~) 影响版本 Office 365 Mic ...

  9. vscode启动vue项目出错,给了管理员权限没用

    今天在安装vue环境测试项目的时候, 发现vscode调用终端异常,语句无法运行,百度上给的解决方法是给管理员权限 给了以后发现没用,怎么试都没用,然后想到了,重启大法,然后问题就完美解决了

  10. 黎活明8天快速掌握android视频教程--16_采用SharedPreferences保存用户偏好设置参数

    SharedPreferences保存的数据是xml格式,也是存在数据保存的下面四种权限: 我们来看看 我们来看看具体的业务操作类: /** * 文件名:SharedPrecences.java * ...