基于BeautifulSoup库的HTML内容的查找
一、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内容的查找的更多相关文章
- 基于bs4库的HTML内容查找方法
一.信息提取实例 提取HTML中所有的URL链接 思路:1)搜索到所有的<a>标签 2)解析<a>标签格式,提取href后的链接内容 >>> import r ...
- BeautifulSoup库的安装与使用
BeautifulSoup库的安装 Win平台:“以管理员身份运行” cmd 执行 pip install beautifulsoup4 演示HTML页面地址:http://python123.io/ ...
- 基于bs4库的HTML查找方法
基于bs4库的HTML查找方法 find_all方法 <>.find_all(name,attrs,recursive,string,**kwargs) 返回一个列表类型,内部存储查找的结 ...
- BeautifulSoup库的使用
1.简介 BeautifulSoup库也是一个HTML/XML的解析器,其使用起来很简单,但是其实解析网站用xpath和re已经足矣,这个库其实很少用到.因为其占用内存资源还是比xpath更高. '' ...
- $python爬虫系列(2)—— requests和BeautifulSoup库的基本用法
本文主要介绍python爬虫的两大利器:requests和BeautifulSoup库的基本用法. 1. 安装requests和BeautifulSoup库 可以通过3种方式安装: easy_inst ...
- python之BeautifulSoup库
1. BeautifulSoup库简介 和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据.lxml 只会局部遍历 ...
- [爬虫] BeautifulSoup库
Beautiful Soup库基础知识 Beautiful Soup库是解析xml和html的功能库.html.xml大都是一对一对的标签构成,所以Beautiful Soup库是解析.遍历.维护“标 ...
- Python爬虫小白入门(三)BeautifulSoup库
# 一.前言 *** 上一篇演示了如何使用requests模块向网站发送http请求,获取到网页的HTML数据.这篇来演示如何使用BeautifulSoup模块来从HTML文本中提取我们想要的数据. ...
- python网络爬虫学习笔记(二)BeautifulSoup库
Beautiful Soup库也称为beautiful4库.bs4库,它可用于解析HTML/XML,并将所有文件.字符串转换为'utf-8'编码.HTML/XML文档是与“标签树一一对应的.具体地说, ...
随机推荐
- Spring Security Oauth2 示例
所有示例的依赖如下(均是SpringBoot项目) pom.xml <dependencies> <dependency> <groupId>org.springf ...
- 面试HashMap之追命5连问
1.HashMap底层实现数据结构? 总的来说,HashMap就是数组+链表的组合实现,每个数组元素存储一个链表的头结点,本质上来说是哈希表“拉链法”的实现. HashMap的链表元素对应的是一个静态 ...
- 为什么越来越少的人用jQuery
摘要:JQuery该退役了. 原文:为什么越来越少的人用jQuery 作者:Lemonade Fundebug经授权转载,版权归原作者所有. 最早期的开发,大多都使用jQuery,它给我们带来了很多的 ...
- RabbitMQ 消息流程、AMOP 概念
AMOP Server:Broker.RabbitMQ Server,实现 AMOP 实体服务,接受客户端的连接 Conneciton:链接,应用程序与 Server 的网络连接 Channel:网络 ...
- java Web三大组件--监听器
监听器概述 监听器(Listener)是一种特殊的Servlet技术,它可以监听Web应用的上下文信息.Servlet请求信息和Servlet会话信息,即ServletContext.ServletR ...
- RPC框架学习总结
1.RPC是一种技术框架的称呼,不是某种具体协议,不局限于某种协议,RPC顾名思义就是远程过程调用,其核心思想是,RPC客户端调用远程服务器上的接口完成过程调用,远程服务器把结果返回. 2.RPC的最 ...
- 在viewPager中双指缩放图片,双击缩放图片,单指拖拽图片
我们就把这个问题叫做图片查看器吧,它的主要功能有: (项目地址:https://github.com/TZHANHONG/ImageViewer/releases/tag/1.0,里面的MyImage ...
- 求二叉树第n层节点数
在知乎看到今日头条的一个面试题“求二叉树第n层节点数”:https://zhuanlan.zhihu.com/p/25671699,想到了这样一个解法,欢迎大家交流 我的解法采用递归的思想,从0层开始 ...
- Foundry feats. MultiverseStudio
https://www.foundry.com/news-awards/foundry-jcube-announcement 经过这么多年的过程,本周本产品终于发布了PR,这次是由Foundry独家代 ...
- Android 内存管理中的 Shallow heap Retained heap
所有包含Heap Profling功能的工具(MAT,Yourkit,JProfiler,TPTP等)都会使用到两个名词,一个是Shallow heap Size,另一个是 Retained heap ...