BeautifulSoup标签定位方法总结
首先说明一下两个基本函数 .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标签定位方法总结的更多相关文章
- Selenium定位一 --单个元素定位方法
Selenium-Webdriver 提供了强大的元素定位方法,支持以下三种方法. 单个对象的定位方法 多个对象的定位方法 层级定位 定位单个元素在定位单个元素时,selenium-webdriver ...
- sellenium页面元素的定位方法
1.findElements函数可用于多个元素定位 (1)使用ID定位:driver.findElement(By.id("ID值")); 例:HTML代码: 定位语句代码:Web ...
- UI自动化测试(二)浏览器操作及对元素的定位方法(xpath定位和css定位详解)
Selenium下的Webdriver工具支持FireFox(geckodriver). IE(InternetExplorerDriver).Chrome(ChromeDriver). Opera( ...
- 元素定位-XPATH定位方法总结
1.Xpath定位方法探讨 xpath是比较常用的一种定位元素的方式,因为它很方便,缺点是,消耗系统性能.如果Xpath使用的比较好,几乎可以定位到任何页面元素,而且受页面变化影响较小. 1.1.什么 ...
- Python3+Selenium2完整的自动化测试实现之旅(三):Selenium-webdriver提供的元素定位方法
本篇以实例介绍selenium下的webdriver模块提供的定位页面元素(也可以称为对象)的方法和使用技巧,在此注意:在做WEB自动化测试前,需要对前端相关的技术有所了解,如HTML.XML.Xpa ...
- DWM1000 多个标签定位讨论 --[蓝点无限]
多标签代码已经基本实现,完成代码可以在论坛上下载 http://bphero.com.cn/forum.php?mod=viewthread&tid=53&fromuid=2 蓝点D ...
- Web Driver 8中定位方法 ——基于python语言
WebDriver提供了八种元素定位方法,在python 语言中,方法如下: id定位:find_element_by_id("id值"):id属性是唯一的. 1 driver ...
- selenium各种定位方法(转)
selenium使用 Xpath CSS JavaScript jQuery的定位方法 (治疗selenium各种定位不到,点击不了的并发症) 2017年07月28日 22:47:36 阅读数:369 ...
- Selenium3详解(基本操作,定位方法)
如果想使用selenium驱动不同的浏览器,必须单独下载并设置不同的浏览器驱动. 基本操作: 刷新:refresh, 获取浏览器窗口大小:get_window_size 设置浏览器窗口大小:set_w ...
随机推荐
- Java核心技术·卷 II(原书第10版)分享下载
Java核心技术·卷 II 内容介绍 Java领域最有影响力和价值的著作之一,由拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),与<Java编程思想>齐名,10余年 ...
- System类StringBuilder小结
- Verilog门级建模
门级建模就是将逻辑电路图用HDL规定的文本语言表示出来,即调用Verilog语言中内置的基本门级元件描述逻辑图中的元件以及元件之间的连接关系. Verilog语言内置了12个基本门级元件模型,如下表所 ...
- Python 多态与抽象类
一.多态 1.1 什么是多态 多态也称"多态性",指的是同一种类型的事物,不同的形态. 在python中的多态指的是让多种类若具备类似的数据属性与方法属性,都统一好命名规范,这样可 ...
- vps批量管理,服务器批量管理,3389批量管理工具
注册的第一天,把我的工具弄上来.如果有一个软件,如果你有vps虚拟机,服务器,3389中的任意一种两种或全部,而且还是批量的,需要管理.那么,你可能会想找个软件来管理吧,毕竟,一个人忙不过来管理这么多 ...
- Prometheus+Alertmanager+Grafana监控组件容器部署
直接上部署配置文件 docker-compose.yml version: '3' networks: monitor: driver: bridge services: prometheus: im ...
- Java小白集合源码的学习系列:ArrayList
ArrayList源码学习 本文基于JDK1.8版本,对集合中的巨头ArrayList做一定的源码学习,将会参考大量资料,在文章后面都将会给出参考文章链接,本文用以巩固学习知识. ArrayList的 ...
- 七牛云 融合CDN测试域名 -> 融合CDN加速域名
七牛云 融合CDN测试域名 -> 融合CDN加速域名 本篇主要讲解 如何将七牛云融合CDN测试域名 切换到自定义的加速域名上去,为什么会写这篇是因为我收到了一封 [七牛云]测试域名回收通知的邮件 ...
- 字符串 hash - 不停地删掉字母
Censor frog is now a editor to censor so-called sensitive words (敏感词). She has a long text p . Her j ...
- python 学习爬虫教程~
思路:: (本文没有用xpath定位,xpath需要导入第三方库 from lxml import etree) 1.首先通过urllib类获取到网页的所有内容 2.通过partition获取其中 ...