从html中查找元素,之前一般都用find(),查找符合条件的第一个,如下

f = open(file, 'r')  # 读取文件内容
content = f.read()
soup= BeautifulSoup(content, 'html.parser', from_encoding='utf-8')
f.close()
tr = soup.find('tr', class_='b') # class是关键字,加"_ " 这样就能查到,符合标签为tr,class属性值为b的条件的第一个元素 但是有次遇到一个问题,发现find()对于属性的值不是精确匹配的,是模糊匹配。
如下图:如果用soup.find('tr',class_='bar')实际定位到的是上面的,说明模糊匹配。find_all()也是模糊匹配

所以改用select()方法,

soup.select('td[class="bar"]')
#select()方法使用css定位元素,根据td标签和class属性值 精确定位,但是会查询出来所有符合条件的元素,返回一个列表

如上图,如果希望定位到需要“查找的”元素文本值
soup.select('td[class="bar"]')[0].text
												

BeautifulSoup中查找元素 select() 和find()区别的更多相关文章

  1. Leetcode算法【34在排序数组中查找元素】

    在之前ARTS打卡中,我每次都把算法.英文文档.技巧都写在一个文章里,这样对我的帮助是挺大的,但是可能给读者来说,一下子有这么多的输入,还是需要长时间的消化. 那我现在改变下方式,将每一个模块细分化, ...

  2. Java实现 LeetCode 34 在排序数组中查找元素的第一个和最后一个位置

    在排序数组中查找元素的第一个和最后一个位置 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 你的算法时间复杂度必须是 O(log n ...

  3. LeetCode-在受污染的二叉树中查找元素

    在受污染的二叉树中查找元素 LeetCode-1261 /** * 给出一个满足下述规则的二叉树: * root.val == 0 * 如果 treeNode.val == x 且 treeNode. ...

  4. 【Java实现】剑指offer53.1——在排序数组中查找数字(LeetCode34:在排序数组中查找元素的起始位置)

    序数组中查找元素的起始位置):思路分享 <剑指offer>题目和LeetCode主站本质是一样的,想要找到target数目,也需要找到左右边界 题目解析: 在一个排序数组中,找到targe ...

  5. 【LeetCode】34. 在排序数组中查找元素的第一个和最后一个位置

    34. 在排序数组中查找元素的第一个和最后一个位置 知识点:数组,二分查找: 题目描述 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置 ...

  6. 34、在排序数组中查找元素的第一个和最后一个位置 | 算法(leetode,附思维导图 + 全部解法)300题

    零 标题:算法(leetode,附思维导图 + 全部解法)300题之(34)在排序数组中查找元素的第一个和最后一个位置 一 题目描述 二 解法总览(思维导图) 三 全部解法 1 方案1 1)代码: / ...

  7. Leetcode题目34.在排序数组中查找元素的第一个和最后一个位置(中等)

    题目描述: 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 你的算法时间复杂度必须是 O(log n) 级别. 如果数组中不存在目标 ...

  8. [LeetCode] 34. Find First and Last Position of Element in Sorted Array 在有序数组中查找元素的第一个和最后一个位置

    Given an array of integers nums sorted in ascending order, find the starting and ending position of ...

  9. SQL中SET和SELECT赋值的区别

    最近的项目写的SQL比较多,经常会用到对变量赋值,而我使用SET和SELECT都会达到效果. 那就有些迷惑,这两者有什么区别呢?什么时候哪该哪个呢? 经过网上的查询,及个人练习,总结两者有以下几点主要 ...

随机推荐

  1. Hive Ntile分析函数学习

    NTILE(n) 用于将分组数据按照顺序切分成n片,返回当前记录所在的切片值 NTILE不支持ROWS BETWEEN,比如 NTILE(2) OVER(PARTITION BY cookieid O ...

  2. iOS基础知识之归档和解档

    归档和解档:即将数据写入文件和从文件中读取数据. 此处以plist文件为例说明, 一.plist文件使用时的注意事项: 1.plist文件中仅支持写入Array,Dictionary,Boolean, ...

  3. JavaScript 字符串拼接 & setInterval()实现简单动画

    在学习JavaScript DOM编程艺术第十章时,遇到了一个小问题: 想要实现的最终效果:一个小方块不断的向下移动. 小方块绝对定位,设置好top与left值后,写了一个动态获取方块到上方距离并在每 ...

  4. ARP 欺骗攻击与防御

    <一> ARP攻防 理论 和 工具 工具: 01: Wireshark ( 抓包软件 )   02: P2P终结者 ( ARP欺骗工具 )   03: cain & abel  ( ...

  5. 关于存session,cookie还是数据库或者memcache的优劣,部分网上抄录

    从效率考虑:cookie > memcache > 数据库cookie对服务器端负载没影响,如果加密.解密会多消耗一点点cpu.带宽倒是会消耗得多一点,同域名下的所有http reques ...

  6. 虚拟机扩容mac

    VMware虚拟机Mac增大容量: 1.设置硬盘容量大小 2.打开虚拟机的终端,找到需要扩展的硬盘.输入命令 :diskutil list 注意 :我的硬盘名字叫yz,这一行可以看见当前分配容量,最后 ...

  7. jquery接触初级----jquery 选择器

    css 选择器主要有:元素选择器,ID选择器,类选择器,群组选择器,后代选择器,普通配符选择器等,通过css选择,我们可以很方便的给元素添加样式,使网页看起来更加好看 jquery 选择器也有相似的功 ...

  8. 1047A_Little C Loves 3 I(构造)

    A. Little C Loves 3 I time limit per test 1 second memory limit per test 256 megabytes input standar ...

  9. linux 3.10中完成量的使用

    完成量是基于等待队列设计的,所以显然不能在中断上下文使用完成量. struct completion { unsigned int done; wait_queue_head_t wait; }; 我 ...

  10. VS Code 使用笔记

    改变 UI 语言 How to change UI language in Visual Studio Code? 设置 Tab 空格 How to set tab-space style?