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

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

  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. async与await暂停作用

    1. async function Request () { await new Promise(res => { setTimeout(() => { console.log(1) re ...

  2. Flink on Zeppelin 流计算处理最佳实践

    简介: 欢迎钉钉扫描文章底部二维码进入 EMR Studio 用户交流群 直接和讲师交流讨论~ 点击以下链接直接观看直播回放:https://developer.aliyun.com/live/247 ...

  3. [PHP] 自定义 laravel/passport 的误区讲解

    Passport 的 Client 模型对应用户是默认的 User 模型.使用的 guards 是 api. 如果你发现自定义 passport 时总是调试不成功,那么很有可能是以下原因. /** * ...

  4. vue-单独引入css文件,设置公共的css样式或者修改默认的vant,mint样式

    1.css文件夹下新建global.css文件并粘贴复制: ======================= :root{     --bgColor : #d3252a;     --pinkColo ...

  5. ABAP 7.55 新特性 (二) ABAP SQL部分

    上一篇文章ABAP 7.55 新特性 (一)介绍了ABAP 7.55中除ABAP SQL外的更新内容,本篇是剩余的ABAP SQL更新部分. 本文链接:https://www.cnblogs.com/ ...

  6. .Net 8.0 下的新RPC,IceRPC之如何创建连接connection

    作者引言 很高兴啊,我们来到了IceRPC之如何创建连接connection,基础引导,让自已不在迷茫,快乐的畅游世界. 如何创建连接connection 学习如何使用IceRPC,创建和接受连接. ...

  7. Swift Charts 报错:Initializer ... requires that .. conform to ‘Identifiable‘

    目录 1. 问题描述 2. 解决办法 1. 问题描述 在运行Swift Charts官方折线图示例时,出现了如下错误. Initializer 'init(_:content:)' requires ...

  8. Threading Programming Guide:One

    苹果支持的产生线程的方式 Operation Object 使用OperationQueue,具体可以参考:Concurrency Programming Guide GCD 使用诸如dispatch ...

  9. Oracle数据库WHERE子查询按时间段查询用法(to_date函数)

    oracle中的to_date参数含义 1.日期格式参数 含义说明 D 一周中的星期几  DAY 天的名字,使用空格填充到9个字符  DD 月中的第几天  DDD 年中的第几天  DY 天的简写名   ...

  10. ❤️‍🔥 Solon Cloud Event 新的事务特性与应用

    1.Solon Cloud Event? 是 Solon 分布式事件总线的解决方案.也是 Solon "最终一致性"分布式事务的解决方案之一 2.事务特性 事务?就是要求 Even ...