zoukankan      html  css  js  c++  java
  • bs4 CSS选择器

    #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'的值。

  • 相关阅读:
    Appium教程
    ES6对象类型判断
    MyBatisPlus的时间段和模糊查询
    一个div中多个元素垂直居中的一种解决办法
    @JsonFormat与@DateTimeFormat注解的使用
    java日期类型对象通过mybatis向数据库中的存取
    Vue.js单向绑定和双向绑定实例分析
    Maven的使用
    如何将本地的项目提交到码云的远程仓库
    Linux CentOS7 的安装
  • 原文地址:https://www.cnblogs.com/Ting-light/p/9547355.html
Copyright © 2011-2022 走看看