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

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

  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. Java实现查看手机配置与功能

    "感谢您阅读本篇博客!如果您觉得本文对您有所帮助或启发,请不吝点赞和分享给更多的朋友.您的支持是我持续创作的动力,也欢迎留言交流,让我们一起探讨技术,共同成长!谢谢!" 代码 `` ...

  2. Understand Abstraction and Interface

    Foreword 抽象和接口是Java中的两个关键字,也是两种最基本的优化软件项目手段.为什么说它们是一种优化项目的手段? 人分三六九等,不同等级的人,所接触的事和处理的事是不一样的.同理,项目也分大 ...

  3. 好云推荐官丨飞天加速之星怎样选择云服务器ECS?

    ​编者按:本文来自"好云推荐官"活动的技术博主投稿,作者(昵称天狼)曾入选首届"飞天加速之星",获得飞天人气奖. ​你是否还在苦苦地寻找一家合适的云厂商,寻找合 ...

  4. Java编程技巧之单元测试用例编写流程

    简介: 立足于"如何来编写单元测试用例",让大家"有章可循",快速编写出单元测试用例. 作者 | 常意来源 | 阿里技术公众号 温馨提示:本文较长,同学们可收藏 ...

  5. dotnet UNO 如何在调试下输出界面层级结构

    本文将告诉大家如何在 UNO 里面将界面的层级结构输出到调试窗口 实现方法非常简单,和 WPF 或 UWP 等的方法是一样的,那就是通过可视化树遍历的方式,如以下代码 static class UIS ...

  6. ZJC比赛

    \(\large{Uptatete}\) 先放张图 这次是真的没想再改了,但是一到教室就又会怎么优化了 没必要每个点都让它和其他所有点判断一下,可以从上一个点加加减减啥的转过来 然后我就在昨天那个 \ ...

  7. elasticsearch02-Request Body深入搜索

    目录 02. Request Body深入搜索 1.1 term查询 1.1.1 term 与 terms 1.1.2 range 范围查询 1.1.3 Constant Score 1.2 全文查询 ...

  8. ansible(10)--ansible的systemd模块

    1. systemd模块 功能:管理服务启动与停止,与 service 模块用法一致: 主要参数如下: 参数 说明 name 指定需要控制的服务名称 state 指定服务状态,其值可以为stopped ...

  9. WEB服务与NGINX(23)- nginx的四层负载均衡功能

    目录 1. nginx实现四层的负载均衡 1.1 nginx四层负载配置参数 1.2 负载均衡示例-mariadb 1. nginx实现四层的负载均衡 nginx从1.9.0版本开始支持TCP模式的负 ...

  10. GPS坐标、火星坐标、百度坐标之间的转换--提供java版本转换代码

    参考文章:https://www.jianshu.com/p/c39a2c72dc65?from=singlemessage 1.国内几种常用坐标系说明 (1)名词解释 坐标系统:用于定位的系统,就跟 ...