zoukankan      html  css  js  c++  java
  • BeautifulSoup中的select方法

    在写css时,标签名不加任何修饰类名前加点id名前加 #,我们可以用类似的方法来筛选元素,用到的方法是soup.select(),返回类型是list。

    (1).通过标签名查找

    print(soup.select('title'))
    # [<title>The Dormouse's story</title>]
    
    print(soup.select('a'))
    # [<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>, <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>, <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]
    
    print(soup.select('b'))
    # [<b>The Dormouse's story</b>]

    (2).通过类名查找

    print soup.select('.sister')
    # [<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>, <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>, <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]

    (3).通过id名查找

    print soup.select('#link1')
    #[<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>]

    (4).组合查找

    组合查找即和写class文件时,标签名与类名、id名进行的组合原理是一样的,例如查找p标签中,id等于link1的内容,二者需要空格分开

    print soup.select('p #link1')
    #[<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>]

    直接子标签查找

    print soup.select("head > title")
    #[<title>The Dormouse's story</title>]

    (5).属性查找

    查找时还可以加入属性元素,属性需要用中括号括起来,注意属性和标签属于同一节点,所以中间不能加空格,否则会无法匹配到。

    print soup.select("head > title")
    #[<title>The Dormouse's story</title>]
     
    print soup.select('a[href="http://example.com/elsie"]')
    #[<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>] 

    属性仍然可以与上述查找方式组合,不在同一节点的空格隔开,同一节点的不加空格

    print soup.select('p a[href="http://example.com/elsie"]')
    #[<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>]
  • 相关阅读:
    重新学习Mysql数据库8:MySQL的事务隔离级别实战
    重新学习Mysql数据库7:详解MyIsam与InnoDB引擎的锁实现
    重新学习MySQL数据库6:浅谈MySQL的中事务与锁
    重新学习Mysql数据库5:根据MySQL索引原理进行分析与优化
    重新学习Mysql数据库4:Mysql索引实现原理
    robot_framewok自动化测试
    资源网
    现在都是python 单独开发框架 执行脚本,处理结果,发报告之类的
    事务处理
    研读 ----全栈工程师
  • 原文地址:https://www.cnblogs.com/keye/p/7881356.html
Copyright © 2011-2022 走看看