#https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html#find-all

#beautifulSoup可以解析HTML,下载安装时使用的是 pip install beautifulsoup4  ,导入模块时使用的是bs4.

import bs4

noStarchSoup=bs4.BeautifulSoup(res.text)

#bs4.BeautifulSoup()函数返回的是一个BeautifulSoup对象。

#也可以像BeautifulSoup()传递一个File对象。

exampleFile=open('usePythonDownloadHtml.html')

exampleSoup=bs4.BeautifulSoup(exampleFile.read())

#CSS选择器的匹配模式

'''

传递给select()方法的选择器          将匹配...

soup.select('div')                   所有名为<div>的元素

soup.select('#author')               带有id属性为author的元素

soup.select('.notice')               所有使用CSS class 属性名为notice的元素

soup.select('div span')              所有在<div>元素之内的<span>元素

soup.select('div > span')            所有直接在<div>元素之内的<span>元素,中间没有其他元素

soup.select('input[name]')           所有名为<input>,并有一个name属性,其值无所谓的元素

soup.select('input[type="button"]')  所有名为<input>,并有一个type属性,其值为bottom的元素

'''

#不同的选择器模式可以组合起来,形成复杂的匹配。例如,soup.select('p#author')将匹配所有id属性为author的元素,只要它也在一个<p>元素之内。

#select()方法将返回一个tag对象的列表。Tag的值可以传递给str()函数,显示它们代表的Html标签。Tag值也可以有attrs属性,它将该Tag的属性作为一个字典。

elems=exampleSoup.select('p')  #查找出"id=author"的元素,返回的elems为一个list.

#len(elems) 返回值为1,说明列表中只有一个tag对象。

print(elems[0].getText(),'1' )#返回该元素的文本,或内部的HTML。一个元素的文本是在开始和结束标签之间的内容。

print(str(elems[0]),'2' ) #将返回一个字符串,其中包含开始和结束标签,以及该元素得到文本。

print(elems[0].attrs,'3') #返回一个字典包含元素的属性名与属性值。

print(elems[0].get('id'),'4')#返回元素的属性‘id'的值。

bs4 CSS选择器的更多相关文章

  1. 使用requests爬取梨视频、bilibili视频、汽车之家,bs4遍历文档树、搜索文档树,css选择器

    今日内容概要 使用requests爬取梨视频 requests+bs4爬取汽车之家 bs4遍历文档树 bs4搜索文档树 css选择器 内容详细 1.使用requests爬取梨视频 # 模拟发送http ...

  2. beautifulsoup之CSS选择器

    BeautifulSoup支持大部分的CSS选择器,其语法为:向tag或soup对象的.select()方法中传入字符串参数,选择的结果以列表形式返回. tag.select("string ...

  3. 六、CSS 选择器:BeautifulSoup4

    和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据. lxml 只会局部遍历,而Beautiful Soup 是基 ...

  4. 前端极易被误导的css选择器权重计算及css内联样式的妙用技巧

    记得大学时候,专业课的网页设计书籍里面讲过css选择器权重的计算:id是100,class是10,html标签是5等等,然后全部加起来的和进行比较... 我只想说:真是误人子弟,害人不浅! 最近,在前 ...

  5. css选择器

    常用css选择器,希望对大家有所帮助,不喜勿喷. 1.*:通用选择器 * { margin: 0; padding: 0; } 选择页面上的全部元素,通常用于清除浏览器默认样式,不推荐使用. 2.#i ...

  6. dynamic-css 动态 CSS 库,使得你可以借助 MVVM 模式动态生成和更新 css,从 js 事件和 css 选择器的苦海中脱离出来

    dynamic-css 使得你可以借助 MVVM 模式动态生成和更新 css,从而将本插件到来之前,打散.嵌套在 js 中的修改样式的代码剥离出来.比如你要做元素跟随鼠标移动,或者根据滚动条位置的变化 ...

  7. CSS选择器的权重与优先规则?

    我们做项目的时候,经常遇到样式层叠问题,被其他的样式覆盖,或者写的权重不高没效果,对权重没有具体的分析,做了一个总结. css继承是从一个元素向其后代元素传递属性值所采用的机制.确定应当向一个元素应用 ...

  8. css选择器的使用详解

    -.css选择器的分类: 二.常用选择器详解: 1.标签选择器: 语法: 标签名 { 属性:属性值; } 代码示例: h1 { color: #ccc; font-size: 28px; } 2.类选 ...

  9. js,jq,css选择器

    js获取节点: var chils= s.childNodes; //得到s的全部子节点 var par=s.parentNode; //得到s的父节点 var ns=s.nextSbiling; / ...

随机推荐

  1. powerdesiger 导入sqlserver 方法

    https://jingyan.baidu.com/album/7f766daf465e9c4101e1d0d5.html

  2. 创建.ignore文件

    方法一:1. 在需要创建 .gitignore 文件的文件夹, 右键选择Git Bash 进入命令行,进入项目所在目录.如:(cd /d/git/project) 2. 输入 touch .gitig ...

  3. BGP - 2,BGP报文和BGP状态

    1,BGP报文      Open:建邻居,交换version.AS号.holdtime.BGP identifier(即RouterID).可选参数长度.可选参数.      Keepalive:保 ...

  4. 8.2 DRAM和SRAM

    计算机组成 8 存储层次结构 8.2 DRAM和SRAM SRAM比较快,DRAM比较慢:SRAM比较贵,DRAM比较便宜.记住这些结论是很容易的,但是比是什么更重要的是为什么.那在这一节我们就从电路 ...

  5. PHP工厂模式的使用场景,使用方法

    所谓工厂模式和生产有关.生产什么呢?生产出来的是一个实例对象.通过什么设备生产?通过一个工厂类生产simpleFactoty.怎么生产呢?工厂类调用自身静态方法来生产对象实例static functi ...

  6. 2.7 UML状态图

    问题的引出 顺序图是对对象的动态行为进行建模,有多个对象的参与.协作 问题: 当需要考察单个实体的动态行为时, 用UML如何来建模呢? 什么是单个实体:一个软件系统?一个子系统?一个模块.一个构件? ...

  7. ubuntu下安装CAJ阅读器

    目录 1.ubuntu下wine的基本介绍 (1)wine的介绍 (2)wine的安装 (3)exe文件的安装 (4)exe程序的卸载 (6)wine的基本使用 2.CAJ阅读器的安装 (1)首先放上 ...

  8. spring boot(二十)使用spring-boot-admin对服务进行监控

    上一篇文章<springboot(十九):使用Spring Boot Actuator监控应用>介绍了Spring Boot Actuator的使用,Spring Boot Actuato ...

  9. 剑指offer-整数中1出现的次数

    题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了. ...

  10. 剑指offer-栈的压入与弹出

    题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序 ...