'''
find:找一个
find_all:找多个标签查找与属性查找:标签:- 字符串过滤器   字符串全局匹配name 属性匹配attrs 属性查找匹配text 文本匹配- 正则过滤器re模块匹配- 列表过滤器列表内的数据匹配- bool过滤器True匹配- 方法过滤器用于一些要的属性以及不需要的属性查找。属性:- class_- id
'''
html_doc = """
<html><head><title>The Dormouse's story</title></head><body><p class="sister"><b>$37</b></p><p class="story" id="p">Once upon a time there were three little sisters; and their names were<a href="http://example.com/elsie" class="sister" >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 BeautifulSoup
soup = BeautifulSoup(html_doc,'lxml')# find与find_all搜索文档
# soup.find()
# name 属性匹配
# attrs 属性查找匹配
# text 文本匹配'''
字符串过滤器
'''
p = soup.find(name='p')
p_s = soup.find_all(name='p')
print(p)
print(p_s)# name + attrs
p = soup.find(name='p',attrs={"id":"p"})
print(p)# name + text
tag = soup.find(name='title',text="The Dormous's story")
print(tag)# name + attrs + text
tag = soup.find(name='a',attrs={"class":"sisiter"},text='Elsie')
print(tag)'''
- 正则过滤器re模块匹配
'''
import re# name
# 根据re模块匹配带有a的节点
a = soup.find(name=re._compile('a'))
a_s = soup.find_all(name=re._compile('a'))
print(a)
print(a_s)# attrs
a=soup.find(attrs={"id":re._compile('link')})
print(a)#   - 列表过滤器
#   列表内的数据匹配
print(soup.find(name=['a','p','html',re._compile('a')]))
print(soup.find_all(name=['a','p','html',re._compile('a')]))#  - bool过滤器
#    True匹配
print(soup.find(name=True,attrs={"id":True}))#  - 方法过滤器
#    用于一些要的属性以及不需要的属性查找。def have_id_not_class(tag):print(tag.name)if tag.name == 'p' and tag.has_attr("id") and not tag.has_attr("class"):return tagprint(soup.find_all(name=函数对象))
print(soup.find_all(name=have_id_not_class))# 补充知识点:
# id
a = soup.find(id='link2')
print(a)# class
p = soup.find(class_='sister')
print(p)

  

转载于:https://www.cnblogs.com/Auraro997/p/11128209.html

python爬虫:bs4搜索文档树相关推荐

  1. Python : Beautiful Soup修改文档树

    修改文档树 Beautiful Soup的强项是文档树的搜索,但同时也可以方便的修改文档树 修改tag的名称和属性 在 Attributes 的章节中已经介绍过这个功能,但是再看一遍也无妨. 重命名一 ...

  2. Python 爬虫利器 Beautiful Soup 4 之文档树的搜索

    前面两篇介绍的是 Beautiful Soup 4 的基本对象类型和文档树的遍历, 本篇介绍 Beautiful Soup 4 的文档搜索 搜索文档树主要使用两个方法 find() 和 find_al ...

  3. Python爬虫BS4库的解析器正确使用方法

    bs4库之所以能快速的定位我们想要的元素,是因为他能够用一种方式将html文件解析了一遍 ,不同的解析器有不同的效果.下文将一一进行介绍. bs4解析器的选择 网络爬虫的最终目的就是过滤选取网络信息, ...

  4. python爬虫:BeautifulSoup_遍历文档树

    前提.回顾 1.因为最近工作中都是在跟XML格式的报文打交道:主要就是XML报文的解析.入库.在做自动化时,需要解析XML报文,前面虽然学习过下BeautifulSoup,结果这次在写脚本时,突然发现 ...

  5. python数据采集6-读取文档

    文章目录 python数据采集6-读取文档 文档编码 纯文本 CSV PDF 微软Word和.docx python数据采集6-读取文档 有种观点认为,互联网基本上就是那些符合新式 Web 2.0 潮 ...

  6. python批量提取word指定内容_使用python批量读取word文档并整理关键信息到excel表格的实例...

    目标 最近实验室里成立了一个计算机兴趣小组 倡议大家多把自己解决问题的经验记录并分享 就像在CSDN写博客一样 虽然刚刚起步 但考虑到后面此类经验记录的资料会越来越多 所以一开始就要做好模板设计(如下 ...

  7. 使用 Python 创建自己的文档扫描仪

    介绍 对这个项目的动机很简单.我们中的许多人转向了在线工作. 随着在线工作量的增加,人们通常不得不通过电子邮件或其他方式呈现文档的数字化版本.换句话说,将任何文档转换为扫描文档. 本文,将介绍如何使用 ...

  8. Python 爬虫 bs4 数据解析基本使用

    Python 爬虫 bs4 基本使用 1. bs4 基本语法 1.1 获取 html 页面 1.2 获取标签 1.3 获取标签中的内容 1.4 获取标签中的属性 2. 实例 免责声明:自本文章发布起, ...

  9. Python+pymupdf处理PDF文档案例6则

    推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),清华大学出版社,2020年6月第1次印刷,7月第2次印刷 京东购买链接:https://i ...

  10. 用Python提取解析pdf文档中内容

    用Python提取解析pdf文档中内容 文章目录: 参考: 1.https://blog.csdn.net/tmaczt/article/details/82876018 # Tika库 2.http ...

最新文章

  1. 世界上最完美的公式 ----欧拉公式
  2. java quartz 时间配置文件_Spring Quartz如何动态配置时间(3)
  3. 如何让cxf客户端简单支持ssl
  4. ZOJ1221 Risk 图形的遍历
  5. jenkins自动化构建iOS应用配置过程中遇到的问题
  6. 前端学习(3026):vue+element今日头条管理-调整外观
  7. 宇斯盾助中厚实现TurboERP远程应用
  8. 阶段1 语言基础+高级_1-2 -面向对象和封装_1面向对象思想的概述
  9. mysql5.6.35源码安装记录
  10. 【Git入门之二】基本术语
  11. JavaSE基础-01-对象
  12. 股票历史数据下载梳理汇总(一)
  13. 投资回报率模版_投资回报率已死!
  14. 根据身份证号匹配对应的城市编码
  15. 使用Python爬取招聘数据、数据处理与可视化
  16. 杨老师课堂_Java教程第一篇之认识计算机
  17. 虚幻引擎4中的自定义深度
  18. 孙陶然:战略目标一定要定得现实可执行
  19. dya04 js_02
  20. 学籍管理系统c语言,c语言学籍信息管理系统设计

热门文章

  1. 《设计模式之美》之接口、抽象类笔记
  2. django 外键_Django 文档解读 - 模型层(1)
  3. 图虫知识共享协议_缘之好物 篇二十:关怀父母的另类方案----新礼物:2019图虫影像历...
  4. 【渝粤教育】国家开放大学2018年春季 7396-21T法学基础知识 参考试题
  5. 【渝粤教育】国家开放大学2018年秋季 0049-22T法律文书 参考试题
  6. 【渝粤题库】陕西师范大学292111 社会学概论 作业
  7. 计算机视觉实战(四)图像形态学操作
  8. [转]对企业管理和团队的理解
  9. 基于vitamio的网络电视直播源代码
  10. 【Python】if __name__ == __main__做了什么?