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>]
时间: 2024-10-17 06:34:28

BeautifulSoup中的select方法的相关文章

通用mapper中的select方法的注意点

代码如下: public List<SpecParam> querySpecParams(Long gid) { SpecParam t = new SpecParam(); t.setGroupId(gid); return this.specParamMapper.select(t);} 当gid=null的时候,会查询数据库所有记录,并返回 原文地址:https://www.cnblogs.com/zxq-Study-Java/p/10041614.html

Thinkphp中的volist标签(查询数据集(select方法)的结果输出)用法简介

参考网址:http://camnpr.com/archives/1515.html 通常volist标签多用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,对此可以直接使用volist标签进行输出. 在控制器中首先对模版赋值,如下例所示: view sourceprint?1 $User = M('User'); 2 $list = $User->limit(10)->select(); 3 $this->assign('list',$li

[转]Shell脚本中获取SELECT结果值的方法

有时候我们可能会需要在Shell脚本中执行SELECT语句,并将结果赋值给一个变量,对于这样的情形,我们可以用以下的方法来达到目的. 点击(此处)折叠或打开 #!/bin/ksh # # Created : 2015.05.25 # Updated : 2015.05.25 # Author : Jet Chenxi Zhang # Description : Get SELECT result in Shell # Variable Definitions # ORACLE_SID=audte

在dialog的content中嵌入select的获取选中值方法

var shortNameList = "<select><option value='1'>1</option><option value='2'>2</option></select>"; top.dialog({ title: "修改账单的客户简称", width: 400, content: '<div class="layui-form-item" style

Linux中的select,poll,epoll模型

Linux中的 select,poll,epoll 都是IO多路复用的机制. select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select()返回后,该数组中就绪的文件描述符便会被内核修改标志位,使得进程可以获得这些文件描述符从而进行后续的读写操作.select目前几乎在所有的平台上支持,其良好跨平台支持也是它的一个优点,事实上从现在看来,这也是它所剩不多的优点之一.select的一个缺点在于单个进程能够监视的文件描

HTML中的&lt;select&gt;标签如何设置默认选中的选项

方法有两种. 第一种通过<select>的属性来设置选中项,此方法可以在动态语言如php在后台根据需要控制输出结果. 1 2 3 4 5 < select  id =  "sel" > < option  value = "1" >1</ option > < option  value = "2"  selected = "selected" >2</ opt

关于phpcms中模块_tag.class.php中的pc_tag()方法的含义

关于phpcms中模块_tag.class.php中的pc_tag()方法的含义: 在phpcms系统中自己写后台模块,要在前台模板中显示出来需要在\phpcms\modules\自己定义的模块名\classes\目录下写一个"模块名_tag.class.php"文件,此文件中输出前台模块板所使用的自定义的pc标签,标签定义类中的方法如何写我在这里就不赘述了,因为网上很多相关内容的资料,比如:(http://wenku.baidu.com/link?url=sesC6Zsic5BJi6

开关控件在主流前端框架中的使用方法

本文仅介绍使用方法,后续再介绍实现方案及优劣对比. jquerymobile jqm可以使用checkbox和select模拟switch控件,只需要增加data-role='flipswitch'即可: 默认开关控件: <input type="checkbox" data-role="flipswitch" /> 若要变为选中状态,只需要增加一个checked属性即可,如下: <input type="checkbox" d

windows和linux套接字中的select机制浅析

先来谈谈为什么会出现select函数,也就是select是解决什么问题的? 平常使用的recv函数时阻塞的,也就是如果没有数据可读,recv就会一直阻塞在那里,这是如果有另外一个连接过来,就得一直等待,这样实时性就不是太好. 这个问题的几个解决方法:1. 使用ioctlsocket函数,将recv函数设置成非阻塞的,这样不管套接字上有没有数据都会立刻返回,可以重复调用recv函数,这种方式叫做轮询(polling),但是这样效率很是问题,因为,大多数时间实际上是无数据可读的,花费时间不断反复执行