首先说明一下两个基本函数 .find() 和 .findAll()。

find()返回第一个符合要求的标签

findAll()返回一个由所有符合要求的标签组成的列表。除此之外基本相同。

0、直接定位

例:

<body>

<table>

<td>apple</td>

<td>banana</td>

</table>

</body>

label_loc = bs.body.table.td

1、通过标签名定位

例:<table>

<td>apple</td>

<td>banana</td>

<table>

bs.find("td") 返回第一个<td></td>

bs.findAll("td") 返回所有<td></td>

2、通过标签属性定位

例:<table>

<td name="fruit">apple</td>

<td name="fruit">apple</td>

</table>

bs.find(name="fruit") 返回第一个<td></td>

bs.findAll(name="fruit") 返回所有<td></td>

3、通过标签名+属性定位

例:<table>

<td name="fruit">apple</td>

<td name="fruit">apple</td>

</table>

bs.find("td",{"name":"fruit"}) 返回第一个<td></td>

findAll 同理

请注意2与3的区别。

find(name="fruit")  != find("td",{"name":"fruit"})

方法3有<td>的限制条件。

4、通过text定位

例:<table>

<td>apple</td>

<td>banana</td>

<table>

find(text="apple") 返回<td></td>

注意text匹配必须完全相同,而且应在同一标签内。find(text="app") 返回None

想要只匹配部分文本,应使用正则表达式,接下来介绍。

5、通过正则表达式与以上方式组合

例:<table>

<td name="fruit">apple</td>

<td name="fruit">apple</td>

</table>

find(text=re.compile("app")) 返回含有app的标签

bs.find("td",{"name":re.compile("fruit")})

BeautifulSoup标签定位方法总结的更多相关文章

  1. Selenium定位一 --单个元素定位方法

    Selenium-Webdriver 提供了强大的元素定位方法,支持以下三种方法. 单个对象的定位方法 多个对象的定位方法 层级定位 定位单个元素在定位单个元素时,selenium-webdriver ...

  2. sellenium页面元素的定位方法

    1.findElements函数可用于多个元素定位 (1)使用ID定位:driver.findElement(By.id("ID值")); 例:HTML代码: 定位语句代码:Web ...

  3. UI自动化测试(二)浏览器操作及对元素的定位方法(xpath定位和css定位详解)

    Selenium下的Webdriver工具支持FireFox(geckodriver). IE(InternetExplorerDriver).Chrome(ChromeDriver). Opera( ...

  4. 元素定位-XPATH定位方法总结

    1.Xpath定位方法探讨 xpath是比较常用的一种定位元素的方式,因为它很方便,缺点是,消耗系统性能.如果Xpath使用的比较好,几乎可以定位到任何页面元素,而且受页面变化影响较小. 1.1.什么 ...

  5. Python3+Selenium2完整的自动化测试实现之旅(三):Selenium-webdriver提供的元素定位方法

    本篇以实例介绍selenium下的webdriver模块提供的定位页面元素(也可以称为对象)的方法和使用技巧,在此注意:在做WEB自动化测试前,需要对前端相关的技术有所了解,如HTML.XML.Xpa ...

  6. DWM1000 多个标签定位讨论 --[蓝点无限]

    多标签代码已经基本实现,完成代码可以在论坛上下载 http://bphero.com.cn/forum.php?mod=viewthread&tid=53&fromuid=2  蓝点D ...

  7. Web Driver 8中定位方法 ——基于python语言

    WebDriver提供了八种元素定位方法,在python 语言中,方法如下:  id定位:find_element_by_id("id值"):id属性是唯一的.  1 driver ...

  8. selenium各种定位方法(转)

    selenium使用 Xpath CSS JavaScript jQuery的定位方法 (治疗selenium各种定位不到,点击不了的并发症) 2017年07月28日 22:47:36 阅读数:369 ...

  9. Selenium3详解(基本操作,定位方法)

    如果想使用selenium驱动不同的浏览器,必须单独下载并设置不同的浏览器驱动. 基本操作: 刷新:refresh, 获取浏览器窗口大小:get_window_size 设置浏览器窗口大小:set_w ...

随机推荐

  1. Linux(Centos)安装node及anyproxy

    一.安装node //下载 wget https://nodejs.org/dist/v10.9.0/node-v10.9.0-linux-x64.tar.xz //解压 tar xf node-v1 ...

  2. CSV 文件的存取

    CSV 文件介绍 CSV(Comma-Separated Values),中文通常叫做逗号分割值.CSV文件由任意数目的记录(行)组成,每条记录由一些字段(列)组成,字段之间通常以逗号分割,当然也可以 ...

  3. 前端Tips#2 - 将 arguments 转换成Array的最佳实践

    本文同步自 JSCON简时空 - 技术博客,点击阅读 视频讲解 文字讲解 1.先讲结论 有很多种方式将 arguments 转换成数组,那么哪一种方式是最优的? 为节约大伙儿的时间,这里先说一下结论: ...

  4. 【题解】P5462 X龙珠

    [题解]P5462 X龙珠 赛题 #B: P5462 X龙珠 | 满分: 100分 发一个set做法 维护两个set,一个按照顺序排序,一个按照值排序. 每次从大往小取,问题就变成了判断这个最大值后面 ...

  5. Linux 文件系统 -- inode 笔记

    什么是 inode inode 的定义:Unix 文件系统中的一种数据结构,用来存储文件的元信息数据   文件在硬盘中的存储是以"块"(block)为单位的,常见的块大小是 4k ...

  6. 如何选择API测试工具

    没有最好,只有最合适. 如今,越来越多的公司正在向DevOps的方向左转,以实现持续集成和持续部署开发.这意味着我们的反馈需要比以往更快,以便确定我们的应用程序是否准备好交付.这就是API测试如此重要 ...

  7. 01_elementUI tree 插件 去图标

    1:elementUI饿了吗前端ui框架,结合vue开发过程中,是不是对tree组件很头疼呢?是不是想自定义图标或者去掉所有图标只留末级checkbox呢? 实现很简单添加几行css代码完美搞定!!! ...

  8. jupyter启动后,浏览器自动打开,但是显示空白

    解决办法 1.在Windows菜单中,搜索regedit,打开它.2.导航到计算机> HKEY_CLASSES_ROOT> .js> Content Type(如果没找到需要新建或直 ...

  9. CSS3(5)---伸缩布局(Flex)

    CSS3(5)---伸缩布局 有关页面布局之前写过三篇相关文章: 1.CSS(5)---盒子模型 2.CSS(6)---浮动(float) 3.CSS(8)---定位(position) 一.什么是F ...

  10. dp-最长递增子序列 (LIS)

    首先引出一个例子 问题 : 给你一个长度为 6 的数组 , 数组元素为 { 1 ,4,5,6,2,3,8 } , 则其最长单调递增子序列为 { 1 , 4 , 5 , 6 , 8 } , 并且长度为 ...