位置: 编程技术 - 正文

Python利用Beautiful Soup模块搜索内容详解(python利用csv模块在对csv文件进行操作)

编辑:rootadmin

推荐整理分享Python利用Beautiful Soup模块搜索内容详解(python利用csv模块在对csv文件进行操作),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python利用csv模块在对csv文件进行操作,python利用range产生列表,python利用while循环求1+2+3......+n的和,python利用for循环求1到100的和,python利用for循环求1到100的和,python利用数据文件统计成绩,python利用beautifulsoup输出第五个的内容,python利用for循环求1到100的和,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

我们将利用 Beautiful Soup 模块的搜索功能,根据标签名称、标签属性、文档文本和正则表达式来搜索。

搜索方法

Beautiful Soup 内建的搜索方法如下:

find() find_all() find_parent() find_parents() find_next_sibling() find_next_siblings() find_previous_sibling() find_previous_siblings() find_previous() find_all_previous() find_next() find_all_next()

使用 find() 方法搜索

首先还是需要建立一个 HTML 文件用来做测试。

我们可以通过 find() 方法来获得 <ul> 标签,默认情况下会得到第一个出现的。接着再获取 <li> 标签,默认情况下还是会得到第一个出现的,接着获得 <div> 标签,通过输出内容来验证是否获取了第一个出现的标签。

find() 方法具体如下:

正如上代码所示,find() 方法接受五个参数:name、attrs、recursive、text 和 **kwargs 。name 、attrs 和 text 参数都可以在 find() 方法充当过滤器,提高匹配结果的精确度。

搜索标签

除了上面代码的搜索 <ul> 标签外,我们还可以搜索 <li> 标签,返回结果也是返回出现的第一个匹配内容。

搜索文本

如果我们只想根据文本内容来搜索的话,我们可以只传入文本参数 :

返回的结果也是 NavigableString 对象 。

根据正则表达式搜索

如下的一段 HTML 文本内容

可以看到 abc@example 邮件地址并没有包括在任何标签内,这样就不能根据标签来找到邮件地址了。这个时候,我们可以使用正则表达式来进行匹配。

在使用正则表达式进行匹配时,如果有多个匹配项,也是先返回第一个。

根据标签属性值搜索

可以通过标签的属性值来搜索:

根据标签属性值来搜索对大多数属性都是可用的,例如:id、style 和 title 。

但是对以下两种情况会有不同:

自定义属性 类 ( class ) 属性

我们不能再直接使用属性值来搜索了,而是得使用 attrs 参数来传递给 find() 函数。

根据自定义属性来搜索

在 HTML5 中是可以给标签添加自定义属性的,例如给标签添加 属性。

如下代码所示,如果我们再像搜索 id 那样进行操作的话,会报错的,Python 的变量不能包括 - 符号。

Python利用Beautiful Soup模块搜索内容详解(python利用csv模块在对csv文件进行操作)

这个时候使用 attrs 属性值来传递一个字典类型作为参数进行搜索:

基于 CSS 中的 类 进行搜索

对于 CSS 的类属性,由于在 Python 中 class 是个关键字,所以是不能当做标签属性参数传递的,这种情况下,就和自定义属性一样进行搜索。也是使用 attrs 属性,传递一个字典进行匹配 。

除了使用 attrs 属性之外,还可以使用 class_ 属性进行传递,这样与 class 区别开了,也不会导致错误。

使用自定义的函数搜索

可以给 find() 方法传递一个函数,这样就会根据函数定义的条件进行搜索。

函数应该返回 true 或者是 false 值。

代码中定义了一个 is_producers 函数,它将检查标签是否具体 id 属性以及属性值是否等于 producers,如果符合条件则返回 true ,否则返回 false 。

联合使用各种搜索方法

Beautiful Soup 提供了各种搜索方法,同样,我们也可以联合使用这些方法来进行匹配,提高搜索的准确度。

使用 find_all() 方法搜索

使用 find() 方法会从搜索结果中返回第一个匹配的内容,而 find_all() 方法则会返回所有匹配的项。

在 find() 方法中用到的过滤项,同样可以用在 find_all() 方法中。事实上,它们可以用到任何搜索方法中,例如:find_parents() 和 find_siblings() 中 。

find_all() 方法为 :

它的参数和 find() 方法有些类似,多个了 limit 参数。limit 参数是用来限制结果数量的。而 find() 方法的 limit 就是 1 了。

同时,我们也能传递一个字符串列表的参数来搜索标签、标签属性值、自定义属性值和 CSS 类。

搜索相关标签

一般情况下,我们可以使用 find() 和 find_all() 方法来搜索指定的标签,同时也能搜索其他与这些标签相关的感兴趣的标签。

搜索父标签

可以使用 find_parent() 或者 find_parents() 方法来搜索标签的父标签。

find_parent() 方法将返回第一个匹配的内容,而 find_parents() 将返回所有匹配的内容,这一点与 find() 和 find_all() 方法类似。

搜索同级标签

Beautiful Soup 还提供了搜索同级标签的功能。

使用函数 find_next_siblings() 函数能够搜索同一级的下一个所有标签,而 find_next_sibling() 函数能够搜索同一级的下一个标签。

同样,也可以使用 find_previous_siblings() 和 find_previous_sibling() 方法来搜索上一个同级的标签。

搜索下一个标签

使用 find_next() 方法将搜索下一个标签中第一个出现的,而 find_next_all() 将会返回所有下级的标签项。

搜索上一个标签

与搜索下一个标签类似,使用 find_previous() 和 find_all_previous() 方法来搜索上一个标签。

总结

标签: python利用csv模块在对csv文件进行操作

本文链接地址:https://www.jiuchutong.com/biancheng/377157.html 转载请保留说明!

上一篇:windows系统下Python环境搭建教程(windows pytorch)

下一篇:Python 中迭代器与生成器实例详解(python中迭代器的作用)

  • 无偿调入的固定资产
  • 财务软件无形资产摊销几年
  • 长期应付款是什么科目 借方
  • 股东投入款放入什么科目
  • 房地产企业购入用于建造商品房的土地使用权
  • 牛奶公司饲养奶牛生产牛奶
  • 车辆保险费发票的会计分录
  • 发票抬头不完整能用吗
  • 商贸企业销售商品结转成本是手工算吗
  • 购置办公大楼
  • 罚没支出包括税收滞纳金吗
  • 纳税人如何网上申请预填报服务
  • 生产性生物资产包括哪些
  • 建筑单位的工作岗位有哪些
  • 销售折扣计入增值税销售额的
  • 企业收入代扣税金应该怎么做会计处理?
  • 客户扣了一部分不合格产品的货款,请问如何做账呢?
  • 策划公司费用怎么算
  • Win7/Win8/Win10单、多系统一键安装教程 只需30秒!
  • 收到投资款怎么做记账凭证
  • 一般纳税人如何计算企业所得税
  • 如何在win7系统中查看电脑基本信息
  • 红字发票只能一张一张开吗
  • 资产减值的会计政策
  • 购买免税农产品可以抵扣进项税
  • 补缴的土地出让金需要计提吗
  • 斑鹿,滕波尔国家公园,印度 (© Ondrej Prosicky/Shutterstock)
  • 企业与员工之间的法律
  • php常见的错误级别
  • phpsql查询
  • api接口应用举例
  • 蓝桥杯b组2020
  • 商品流通的企业
  • 隔两个月发票如何作废
  • 权益法转成本法非同一控制下为什么不公允
  • 建设项目财务费用包括
  • 以前年度损益调整是什么意思
  • tempdb数据库能删么
  • 金税四期对企业影响
  • 政府补助是否可以抵扣
  • 开票金额和发票金额
  • 服务不动产和无形资产本期数,第19栏
  • 个人新冠肺炎确诊,要和单位领导说吗
  • 商场一般是怎么缴纳租金的
  • 企业间拆借资金是否合法
  • 简易征收的纳税标准
  • 企业发行债券的优点有哪些
  • 员工工资怎么计提
  • 怎样在excel计算
  • 出口产品开票注意事项
  • 支付个人运费没有发票怎么办
  • 收到境外打电话来怎么办
  • 发票没有银行账号可以吗
  • 差旅费的进项税率是多少
  • 员工借支备用金属于现金流量的哪类
  • 部门财务独立核算原则有哪些
  • 企业建账可以处于哪几个阶段
  • centos6安装步骤
  • centos7创建swap分区
  • freebsd操作命令
  • ubuntu系统安装程序
  • sharedprem.exe - sharedprem是什么进程 有什么作用
  • mom.exe是什么程序
  • win7c盘winsxs
  • 装win7系统对电脑有什么要求
  • win10系统预览版
  • dos所有命令的命令格式
  • 事件委托机制的三个主要组件
  • 批处理应用实例
  • 我为什么要
  • 安卓 图形api
  • python截取数据
  • python遍历文件
  • 河北发票查询真伪查询
  • 福建电子税务局社保缴费操作
  • 申报个税身份证验证不通过
  • 湖南低保查询网上查询
  • 如何抵扣税款
  • 税务师报考条件和时间2021湖北
  • 保险发票不包含哪些
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设