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>]
  • 相关阅读:
    sqlilab-Less-41-53-writeup
    【转载】CPU架构、指令集与指令集体系结构(ISA)
    《鸟哥的Linux私房菜》读书笔记--第0章 计算机概论 硬件部分
    UVA-1602 Lattice Animals 搜索问题(打表+set)
    Python爬虫简单入门及小技巧
    HDU-1043 Eight八数码 搜索问题(bfs+hash 打表 IDA* 等)
    nginx重启命令
    php使用正则过滤js脚本代码实例
    ini_set("display_errors","On");和error_reporting(E_ALL);
    js中NAN、NULL、undefined的区别
  • 原文地址:https://www.cnblogs.com/keye/p/7881356.html
Copyright © 2011-2022 走看看