财经大数据技术应用基础 课件 BeautifulSoup模块-搜索文档树_第1页
财经大数据技术应用基础 课件 BeautifulSoup模块-搜索文档树_第2页
财经大数据技术应用基础 课件 BeautifulSoup模块-搜索文档树_第3页
财经大数据技术应用基础 课件 BeautifulSoup模块-搜索文档树_第4页
财经大数据技术应用基础 课件 BeautifulSoup模块-搜索文档树_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

BeautifulSoup模块搜索文档树搜索文档树概述BeautifulSoup定义了很多搜索方法,以find_all方法为例,其他方法用法类似。find_all方法,用于搜索当前Tag的所有子节点,并判断是否符合过滤器的条件,方法格式如下所示:find_all(name,attrs,recursive,text,**kwargs)find_all方法中各个参数有不同的功能,接下来讲解方法中的三个常用参数:name,text,kwargs。find_all方法参数1.name参数name参数可以查找所有名字为name的Tag对象,字符串对象会被自动过滤掉,name参数可以是字符串、正则比较式、列表、True和方法。字符串是简单的过滤器,在搜索方法中传入字符串,BeautifulSoup会查找与字符串完全匹配的的内容,返回内容为列表。以上面提到的百度为例子,示例如下图所示。find_all方法参数1.name参数4如果传入正则表达式作为参数,BeautifulSoup会通过正则表达式的match()方法来匹配内容,返回内容为列表。示例如右图所示。如果传入参数为列表,BeautifulSoup将返回与列表中所有任意元素匹配的内容。示例如左图所示。find_all方法参数1.name参数如果传入的参数为True,True可以匹配任何值,但不包括字符串对象,如果上述过滤器都不能满足要求,还可以自定义方法,例如,可以采用下图中的示例方法。上述过滤方法hasA()方法中接收一个Tag节点元素,如果这个元素符合过滤条件,返回当前匹配到的元素,否则返回None。find_all方法参数2.kwargs参数kwargs参数在Python中表示key_value参数。搜索时会把该参数当做当做指定Tag的属性来搜索。搜索指定的Tag属性时,可以使用的参数值包括:字符串、正则表达式、列表、True。以上述百度为例,查找id属性为“wrapper”,示例如右图所示。通过上述结果可以看到,如果设置参数id=“wrapper”,BeautifulSoup会搜索每个包含id=“wrapper”属性的Tag。find_all方法参数2.kwargs参数还可以使用正则表达式,通过正则匹配,搜索Tag标签包含特定属性的Tag标签,返回是一个列表,示例如下图所示。如果筛选包含某个属性的固定Tag标签,可以使用组合属性方式,示例如下图所示。标签中的class属性,在python中是关键字,不能直接使用,需要在class后面加下划线代替。find_all方法参数3.text参数通过text参数可以搜索文档中Tag标签.string属性与text值相同的Tag标签对象。与name参数的可选值一样,text参数接收字符串、正则表达式、列表、True。示例如下:text参数虽然用于搜索字符,还可配合其他参数混合使用,筛选出符合需求的标签。如果筛选的结果过多,搜索过程会很慢,可以使用limit参数限制返回结果的数量。示例如下:其他搜索函数其他函数的使用方法和find_all函数类似,区别如下表1所示。表1其他搜索函数函数功能介绍find(name,attrs,recursive,text,**kwargs)与find_all()方法唯一的区别是:find_all()方法的返回结果是所有满足要求的值组成的列表;而find()方法直接返回find_all()搜索结果中的第一个值。find_parents(name,attrs,recursive,text,**kwargs)find_parent(name,attrs,recursive,text,**kwargs)find_parents和find_parent函数用来搜索当前节点的父节点。两者的区别是:find_parents返回所有符合条件的父节点;find_parent只返回匹配的第一个。find_next_siblings(name,attrs,recursive,text,**kwargs)find_next_sibling(name,attrs,recursive,text,**kwargs)find_next_siblings和find_next_sibling函数返回符合条件的后面兄弟节点。两者的区别是:find_next_siblings会返回所有符合条件的兄弟节点;find_next_sibling只会返回匹配的第一个。find_previous_siblings(name,attrs,recursive,text,**kwargs)find_previous_sibling(name,attrs,recursive,text,**kwargs)这两个方法

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论