一、BeautifulSoup库提供了一个检索的参数:

<>.find_all(name,attrs,recursive,string,**kwargs),它返回一个列表类型,存储查找的结果。它的一些对应的简写形式是:

  <tag>(...) <=> <tag>.find_all(...)

  soup.(...) <=> soup.find_all(...)

•name:按照标签名称进行检索,可以同时对多个标签名称同时检索

•attr:按照标签的属性值进行检索,可以标注为属性检索

•recursive:是否对子孙全部检索,默认为True

•string:对标签中字符串区域进行检索,<>...string...</>

 import requests
from bs4 import BeautifulSoup
import re r = requests.get('http://python123.io/ws/demo.html')
r.raise_for_status()
r.encoding = r.apparent_encoding
demo = r.text
soup = BeautifulSoup(demo,"html.parser") print(soup.find_all('a'))#按照name进行检索
print(soup.find_all(['a','b']))#同时对多个name标签进行检索
for tag in soup.find_all(re.compile('b')):#对以b开头的所有标签进行检索
print(tag.name)
print(tag) print("")
print(soup.find_all('p','course'))#按照标签里面的属性值进行检索
print(soup.find_all(id='link1'))#按照指定的属性的属性值进行检索,严格匹配
print(soup.find_all(id = re.compile('link')))#特定属性值的不严格匹配 print("")
print(soup.find_all('a',recursive = False))#不对所有子孙检索,只检索儿子节点,起点是html标签,如果返回的是空列表[],就代表a标签是在儿子标签之后的标签里面 print(soup.find_all(string = 'Basic Python'))#检索字符串,严格匹配
print(soup.find_all(string = re.compile('Python')))#不严格匹配

二、<>find_all(..)的扩展方法

方法 说明
<>.find() 搜索,只返回一个结果,字符串类型,同.find_all()参数
<>.find_parent() 在先辈中搜索,只返回一个结果,返回字符串类型,同.find()参数
<>.find_parents() 在先辈中搜索,返回列表类型,同.find_all()参数
<>.find_next_sibling() 在后续平行节点中搜索,只返回一个结果,返回字符串类型,同.find()参数
<>.find_next_siblings() 在后续平行节点中搜索,返回一个列表类型,同.find_all()参数
<>.find_previous_sibling() 在前续平行节点中搜索,只返回一个结果,返回字符串类型,同参.find()数
<>.find_previous_siblings() 在前续平行节点中搜索,返回一个列表类型,同.find_all()参数

基于BeautifulSoup库的HTML内容的查找的更多相关文章

  1. 基于bs4库的HTML内容查找方法

    一.信息提取实例 提取HTML中所有的URL链接 思路:1)搜索到所有的<a>标签 2)解析<a>标签格式,提取href后的链接内容 >>> import r ...

  2. BeautifulSoup库的安装与使用

    BeautifulSoup库的安装 Win平台:“以管理员身份运行” cmd 执行 pip install beautifulsoup4 演示HTML页面地址:http://python123.io/ ...

  3. 基于bs4库的HTML查找方法

    基于bs4库的HTML查找方法 find_all方法 <>.find_all(name,attrs,recursive,string,**kwargs) 返回一个列表类型,内部存储查找的结 ...

  4. BeautifulSoup库的使用

    1.简介 BeautifulSoup库也是一个HTML/XML的解析器,其使用起来很简单,但是其实解析网站用xpath和re已经足矣,这个库其实很少用到.因为其占用内存资源还是比xpath更高. '' ...

  5. $python爬虫系列(2)—— requests和BeautifulSoup库的基本用法

    本文主要介绍python爬虫的两大利器:requests和BeautifulSoup库的基本用法. 1. 安装requests和BeautifulSoup库 可以通过3种方式安装: easy_inst ...

  6. python之BeautifulSoup库

    1. BeautifulSoup库简介 和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据.lxml 只会局部遍历 ...

  7. [爬虫] BeautifulSoup库

    Beautiful Soup库基础知识 Beautiful Soup库是解析xml和html的功能库.html.xml大都是一对一对的标签构成,所以Beautiful Soup库是解析.遍历.维护“标 ...

  8. Python爬虫小白入门(三)BeautifulSoup库

    # 一.前言 *** 上一篇演示了如何使用requests模块向网站发送http请求,获取到网页的HTML数据.这篇来演示如何使用BeautifulSoup模块来从HTML文本中提取我们想要的数据. ...

  9. python网络爬虫学习笔记(二)BeautifulSoup库

    Beautiful Soup库也称为beautiful4库.bs4库,它可用于解析HTML/XML,并将所有文件.字符串转换为'utf-8'编码.HTML/XML文档是与“标签树一一对应的.具体地说, ...

随机推荐

  1. js循环json得到 键和值

    var jsondata=[{"男":4,"女":3,"不详":0},{"男one":23,"女two&quo ...

  2. thinkphp简洁、美观、靠谱的分页类

    我们要实现如下图分页效果 这个分页类是在thinkphp框架内置的分页类的基础上修改而来:原分页类的一些设计,在实际运用中感觉不是很方便: 1.只有一页内容时不显示分页: 2.原分页类在当前页是第一页 ...

  3. CSS效果:CSS3实现模拟select以及其中的三角形

    如图实现这样的效果: html代码如下: <div class="select-bg"> <select class="select-green&quo ...

  4. cf1136E. Nastya Hasn't Written a Legend(二分 线段树)

    题意 题目链接 Sol yy出了一个暴躁线段树的做法. 因为题目保证了 \(a_i + k_i <= a_{i+1}\) 那么我们每次修改时只需要考虑取max就行了. 显然从一个位置开始能影响到 ...

  5. application.properties多环境配置文件、jar包外部配置文件、配置项加密、程序中配置使用

    一.简介 spring boot项目application.properties文件存放及使用介绍 二.方法一多环境配置文件 我们一般都会有多个应用环境,开发环境.测试环境.生产环境,各个环境的配置会 ...

  6. Linux 安装 Mysql 5.7.23

    切换目录 cd /usr 创建目录 mkdir mysql cd mysql 下载 Mysql Yum wget http://repo.mysql.com/mysql57-community-rel ...

  7. linux连接数过多,导致ping包丢包的问题解析

    1.首先要明确,无论是tcp, udp, raw等这些都要占用socket, 那么就涉及到连接数的问题. 所以,linux连接数的问题,不仅仅是tcp连接数. 2.查看当前系统中所有的socket 连 ...

  8. Jenkins Jenkins结合GIT Maven持续集成环境配置

    Jenkins结合GIT Maven持续集成环境配置   by:授客 QQ:1033553122 安装Git插件 1 安装Git客户端 1 安装JAVA JDK及MAVEN 2 Jenkins JDK ...

  9. 《React与Redux开发实例精解》读书笔记

    第五章 JSX语法 class属性改为className for属性改为htmlFor jsx中javascript表达式必须要有返回值,使用三元操作符 所有的标签必须闭合 input img等 re ...

  10. JHipster开发环境安装

    本文演示如何在CentOS7上安装Jhipster以及其依赖组件. 这里采用官方推荐的Yarn安装方法,操作系统版本为CentOS 7.4. 1 安装JDK 推荐版本:OpenJDK 1.8.0-64 ...