Python BeautifulSoup定位取值
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
从网页中获取指定标签、属性值,取值方式:
1.通过标签名获取:tag.name tag对应的type是<class 'bs4.element.Tag'>
2.通过属性获取:tag.attrs
3.获取标签属性:tag.get('属性名') 或 tag['属性名']
获取标签内容:
1.tag.string 获取当前标签的内容,只有一个标签的时候,(是能处理一个标签,返回标签的text内容)
2.tag.get_text() 获取标签内所有的字符串
BeautifulSoup 功能标签
1.
stripped_strings输出的字符串中可能包含了很多空格或空行,使用
.stripped_strings可以去除多余空白内容for string in soup.stripped_strings:
print(repr(string))
# u"The Dormouse's story"
# u"The Dormouse's story"
# u'Once upon a time there were three little sisters; and their names were'
# u'Elsie'
# u','
# u'Lacie'
# u'and'
# u'Tillie'
# u';\nand they lived at the bottom of a well.'2. 标准输出页面:
soup.prettify()
BeautifulSoup 查找元素:
1.find_all(class_="class") 返回的是多个标签,格式为<class 'bs4.element.ResultSet'>
2.find(class_="class") 返回一个标签,格式是<class 'bs4.element.Tag'>
3.select_one() 返回一个标签,格式是<class 'bs4.element.Tag'>
4.select() 返回的是多个标签,格式为<class 'bs4.element.ResultSet'>
5. soup = BeautifulSoup(backdata,'html.parser') #转换为BeautifulSoup形式属性
soup.find_all('标签名',attrs{'属性名':'属性值'} ) #返回的是列表
limitk 控制 find_allf返回的数量
recursive=Flasef返回tag的直接子元素soup.find_all(text=re.compile(' content ')) 根据文本匹配,可模糊匹配
子节点处理方式:
1.
contents
.contents属性可以将tag的子节点以列表的方式输出2. children
.children生成器,可以对tag的子节点进行循环3.
descendants
contents和children只是返回的是直接子节点,而descendants返回的是对多有的子孙节点进行循环
父节点处理方式:
1. parent
通过
.parent属性来获取某个元素的父节点2. find_parents()
返回祖先节点
2. find_parent()
返回父节点
兄弟节点处理方式:
1. next_siblings 下一个兄弟节点
2. previous_siblings 上一个兄弟节点
3. find_next_siblings()下一个兄弟节点
4. find_next_sibling()上一个兄弟节点
Python BeautifulSoup定位取值的更多相关文章
- Python 字符串——巧取值和列表——巧取值 对比
Python 字符串——巧取值和列表——巧取值 对比 1.字符串取值实例: samp_string = "Whatever you are, be a good one." for ...
- python迭代器-迭代器取值-for循环-生成器-yield-生成器表达式-常用内置方法-面向过程编程-05
迭代器 迭代器 迭代: # 更新换代(其实也是重复)的过程,每一次的迭代都必须基于上一次的结果(上一次与这一次之间必须是有关系的) 迭代器: # 迭代取值的工具 为什么用迭代器: # 迭代器提供了一种 ...
- Python 字典的取值
不能用.取值 .是获取属性或方法 只能用中括号或者get方法 中括号和get中可以放字符串或者变量 get与[]的区别在于当key不存在,get不会报错,而且get可以设置取不到值时返回的默认值.
- python数组冒号取值操作
1.冒号的用法 1.1 一个冒号 a[i:j] 这里的i指起始位置,默认为0:j是终止位置,默认为len(a),在取出数组中的值时就会从数组下标i(包括)一直取到下标j(不包括j) 在一个冒号的情况下 ...
- [原创]python+beautifulsoup爬取整个网站的仓库列表与仓库详情
from bs4 import BeautifulSoup import requests import os def getdepotdetailcontent(title,url):#爬取每个仓库 ...
- python:字符串取值
某个字符串为stmp="abcdef54321" 取前面5个stmp[:5] #abcde 取后面5个stmp[-5:] #54321 从前面开始取,不包括最后两个stmp[:-2 ...
- 学习笔记28—Python 不同数据类型取值方法
1.array数据类型 1)-------> y[i,] 或者 y[i] 2.遍历目录下所有文件夹: def eachFile(filepath): pathDir = os.list ...
- python 嵌套字典取值增强版
def getdictvalue(d,code): result=[] if isinstance(d, dict) : try: value = d[code] result.append(valu ...
- Python数据科学手册-Pandas:数据取值与选择
Numpy数组取值 切片[:,1:5], 掩码操作arr[arr>0], 花哨的索引 arr[0, [1,5]],Pandas的操作类似 Series数据选择方法 Series对象与一维Nump ...
- 9月23日内容总结——pycharm的安装与使用、python语法规范与注释、变量和常量、索引取值以及部分数据类型简介
今日内容总结 目录 今日内容总结 一.pycharm的安装 1.软件介绍 2.正版安装 1.下载软件 2.安装软件 3.其他方法安装(需要先下载相关资源) ①无限试用法 ②傻瓜式激活法 ③淘宝购买 二 ...
随机推荐
- 力扣438(Java)-找到字符串中所有字母异位词(中等)
题目: 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引.不考虑答案输出的顺序. 异位词 指由相同字母重排列形成的字符串(包括相同的字符串). 示例 1: ...
- 力扣372(java)-超级次方(中等)
题目: 你的任务是计算 ab 对 1337 取模,a 是一个正整数,b 是一个非常大的正整数且会以数组形式给出. 示例 1: 输入:a = 2, b = [3]输出:8示例 2: 输入:a = 2, ...
- Nacos 2.0 性能提升十倍,贡献者 80% 以上来自阿里之外
简介: 3 月 20 日,Nacos 2.0 正式发布.Nacos 是阿里巴巴在 2018 年开源的一个更易于构建云原生应用的动态服务发现.配置管理和服务管理平台,也可以理解为微服务的注册中心 + 配 ...
- Log4j漏洞不仅仅是修复,更需要构建有效预警机制
简介:软件的漏洞有时不可避免,根据Gartner的相关统计,到 2025 年,30% 的关键信息基础设施组织将遇到安全漏洞.日志服务SLS,可帮助快速部署一个预警机制,使得漏洞被利用时可以快速发现并 ...
- 使用 Flink Hudi 构建流式数据湖
简介: 本文介绍了 Flink Hudi 通过流计算对原有基于 mini-batch 的增量计算模型的不断优化演进. 本文介绍了 Flink Hudi 通过流计算对原有基于 mini-batch 的 ...
- [FE] G2Plot 更新图表的两种方式
第一种是使用 G2Plot 对象上的 changeData 方法,如果不涉及到全局 title 等这些的更改,可以采用这种方式. 也就是说,只有纯数据方面的变动,使用 changeData 更新图表数 ...
- [FAQ] Error: Component series.bar not exists. Load it first. (echarts)
以上错误出现在使用 echarts 组件时,未导入或者使用不正确的情况下. 检查是否导入 line 或者 bar 这一类具体的 chart,比如: import 'echarts/lib/chart/ ...
- dotnet 通过 DockerfileContext 解决项目放在里层文件夹导致 VisualStudio 构建失败
本文告诉大家,如何解决 csproj 项目文件放入到里层的文件夹,不放在 sln 所在文件夹的第一层子文件夹,导致 VisualStudio 2022 在构建 docker 映像提示找不到文件的问题 ...
- 2019-8-31-dotnet-线程静态字段
title author date CreateTime categories dotnet 线程静态字段 lindexi 2019-08-31 16:55:58 +0800 2019-06-13 0 ...
- 服务端向客户端发送消息Server-Sent Events
今天听说了服务端向客户端发消息的一种方式:Server-Sent Events SSE使用的是HTTP协议,本质上是服务端向客户端发送流式数据. HTTP不支持服务端向客户端发送请求,但是如果客户端向 ...