-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

从网页中获取指定标签、属性值,取值方式:

  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

    contentschildren 只是返回的是直接子节点,而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定位取值的更多相关文章

  1. Python 字符串——巧取值和列表——巧取值 对比

    Python 字符串——巧取值和列表——巧取值 对比 1.字符串取值实例: samp_string = "Whatever you are, be a good one." for ...

  2. python迭代器-迭代器取值-for循环-生成器-yield-生成器表达式-常用内置方法-面向过程编程-05

    迭代器 迭代器 迭代: # 更新换代(其实也是重复)的过程,每一次的迭代都必须基于上一次的结果(上一次与这一次之间必须是有关系的) 迭代器: # 迭代取值的工具 为什么用迭代器: # 迭代器提供了一种 ...

  3. Python 字典的取值

    不能用.取值 .是获取属性或方法 只能用中括号或者get方法 中括号和get中可以放字符串或者变量 get与[]的区别在于当key不存在,get不会报错,而且get可以设置取不到值时返回的默认值.

  4. python数组冒号取值操作

    1.冒号的用法 1.1 一个冒号 a[i:j] 这里的i指起始位置,默认为0:j是终止位置,默认为len(a),在取出数组中的值时就会从数组下标i(包括)一直取到下标j(不包括j) 在一个冒号的情况下 ...

  5. [原创]python+beautifulsoup爬取整个网站的仓库列表与仓库详情

    from bs4 import BeautifulSoup import requests import os def getdepotdetailcontent(title,url):#爬取每个仓库 ...

  6. python:字符串取值

    某个字符串为stmp="abcdef54321" 取前面5个stmp[:5] #abcde 取后面5个stmp[-5:] #54321 从前面开始取,不包括最后两个stmp[:-2 ...

  7. 学习笔记28—Python 不同数据类型取值方法

    1.array数据类型 1)-------> y[i,] 或者 y[i] 2.遍历目录下所有文件夹: def eachFile(filepath):     pathDir =  os.list ...

  8. python 嵌套字典取值增强版

    def getdictvalue(d,code): result=[] if isinstance(d, dict) : try: value = d[code] result.append(valu ...

  9. Python数据科学手册-Pandas:数据取值与选择

    Numpy数组取值 切片[:,1:5], 掩码操作arr[arr>0], 花哨的索引 arr[0, [1,5]],Pandas的操作类似 Series数据选择方法 Series对象与一维Nump ...

  10. 9月23日内容总结——pycharm的安装与使用、python语法规范与注释、变量和常量、索引取值以及部分数据类型简介

    今日内容总结 目录 今日内容总结 一.pycharm的安装 1.软件介绍 2.正版安装 1.下载软件 2.安装软件 3.其他方法安装(需要先下载相关资源) ①无限试用法 ②傻瓜式激活法 ③淘宝购买 二 ...

随机推荐

  1. 云原生数据仓库TPC-H第一背后的Laser引擎大揭秘

    简介: 作者| 魏闯先阿里云数据库资深技术专家 一.ADB PG 和Laser 计算引擎的介绍 (一)ADB PG 架构 ADB PG 是一款云原生数据仓库,在保证事务ACID 能力的前提下,主要解决 ...

  2. SchedulerX 如何帮助用户解决分布式任务调度难题?

    ​简介:本文分别对任务调度平台的资源定义.可视化管控能力.分布式批处理能力进行了简述,并基于 SchedulerX 的能力结合实际业务场景提供了一些基础参考案例.希望通过上述内容能让大家方便地熟悉任务 ...

  3. 基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台

    简介: 本文将对 RocketMQ-Exporter 的设计实现做一个简单的介绍,读者可通过本文了解到 RocketMQ-Exporter 的实现过程,以及通过 RocketMQ-Exporter 来 ...

  4. Spring Boot Serverless 实战 | Serverless 应用的监控与调试

    ​简介:Spring Boot 是基于 Java Spring 框架的套件,它预装了 Spring 的一系列组件,让开发者只需要很少的配置就可以创建独立运行的应用程序.在云原生的环境中,有大量的平台可 ...

  5. 新型DDoS来袭 | 基于STUN协议的DDoS反射攻击分析

    简介: 作为新型反射类型,目前仍存绕过防御可能性. 阿里云安全近期发现利用STUN(Session Traversal Utilities for NAT,NAT会话穿越应用程序)服务发起的DDoS反 ...

  6. 阿里云全站加速DCDN重磅升级

    ​简介:相比传统CDN加速,全站加速DCDN具有更广阔的应用场景.在当下企业全面数字化的进程中,为了更全面地满足广大企业客户的个性化加速需求,全站加速DCDN从简单开通到个性化定制.从内容分发到安全防 ...

  7. [ML] 数据预处理 - 特性归一化的目的

    简而言之,归一化的目的就是使得预处理的数据被限定在一定的范围内(比如[0,1]或者[-1,1]), 从而消除奇异样本数据导致的不良影响. 是否归一化主要在于是否关心变量取值. Tool:ChatAI ...

  8. easyExcel多行表头设定不同样式和特定单元格设定样式的实现

    前言 有个需求,需要设置Excel导出的样式,样式如下图所示,有三个表头行,第一个表头行需要加粗和灰色背景,另外两个表头行使用另外的样式,并且当测试结果单元格出现x或者未通过的时候,设置其为红色字体. ...

  9. 深度Linux deepin更新,防火墙操作

    获取更新 sudo apt-get update 更新系统 sudo apt-get dist-upgrade -y 清理更新缓存 sudo apt-get autoclean 防火墙操作 sudo ...

  10. JS的异步加载

    异步加载 先看一张整体的异步加载对渲染的阻塞情况图,图片如下: 从这张图里我们可以看到如下4点: 默认情况HTML解析,然后加载JS,此时HTML解析中断,然后执行JS,最后JS执行完成恢复HTML解 ...