当前位置: 首页 > news >正文

汇鑫网站建设方便手机提取网页视频app

汇鑫网站建设方便,手机提取网页视频app,青岛 茶叶网站建设,进入公众号提示微信授权失败4-详细方法 | 用什么方法对文档树进行搜索#xff1f;1 过滤器1.1 字符串1.2 正则表达式1.3 列表1.4 True1.5 可以自定义方法2 find_all()2.1 参数原型2.2 name参数2.3 keyword 参数2.4 string 参数2.5 limit 参数2.6 recursive 参数3 find()4 find_parents()和find_parent()5… 4-详细方法 | 用什么方法对文档树进行搜索1 过滤器1.1 字符串1.2 正则表达式1.3 列表1.4 True1.5 可以自定义方法2 find_all()2.1 参数原型2.2 name参数2.3 keyword 参数2.4 string 参数2.5 limit 参数2.6 recursive 参数3 find()4 find_parents()和find_parent()5 find_next_siblings() 和 find_next_sibling()6 find_previous_siblings() 和 find_previous_sibling()7 find_all_next() 和 find_next()8 find_all_previous() 和 find_previous()9 本文涉及的源码BeautifulSoup的文档搜索方法有很多官方文档中重点介绍了两个方法 find() 和 find_all() 下文中的实例依旧是官网的例子 html_doc htmlheadtitleThe Dormouses story/title/head body p classtitlebThe Dormouses story/b/pp classstoryOnce upon a time there were three little sisters; and their names were a hrefhttp://example.com/elsie classsister idlink1Elsie/a, a hrefhttp://example.com/lacie classsister idlink2Lacie/a and a hrefhttp://example.com/tillie classsister idlink3Tillie/a; and they lived at the bottom of a well./pp classstory.../p from bs4 import BeautifulSoup soup BeautifulSoup(html_doc, html.parser)1 过滤器 在介绍文档搜索方法之前先了解下各种过滤器。 1.1 字符串 即在搜索方法中传如一个字符串参数BeautifulSoup会查找与字符串完全匹配的内容如查找b标签 print(soup.find_all(b))输出为 [bThe Dormouses story/b]1.2 正则表达式 传入正则表达式作为参数Beautiful Soup会通过正则表达式的 match() 来匹配内容如找出所有以b开头的标签 import re for tag in soup.find_all(re.compile(^b)):print(tag.name)输出为 body b1.3 列表 传入列表参数Beautiful Soup会将与列表中任一元素匹配的内容返回如找到文档中所有a标签和b标签: print(soup.find_all([a, b]))输出为 [bThe Dormouses story/b, a classsister hrefhttp://example.com/elsie idlink1Elsie/a, a classsister hrefhttp://example.com/lacie idlink2Lacie/a, a classsister hrefhttp://example.com/tillie idlink3Tillie/a]1.4 True True 可以匹配任何值如查找到所有的tag for tag in soup.find_all(True):print(tag.name)输出为 html head title body p b p a a a p1.5 可以自定义方法 如果没有合适过滤器,那么还可以定义一个方法方法只接受一个元素参数如果这个方法返回 True 表示当前元素匹配并且被找到,如果不是则反回 False 2 find_all() 搜索当前tag的所有tag子节点,并判断是否符合过滤器的条件。比如 print(soup.find_all(title))输出为 [titleThe Dormouses story/title]2.1 参数原型 find_all( name , attrs , recursive , string , **kwargs )2.2 name参数 查找所有名字为 name 的tag如print(soup.find_all(title))输出为[titleThe Dormouses story/title]。 2.3 keyword 参数 如果一个指定名字的参数不是搜索内置的参数名,搜索时会把该参数当作指定名字tag的属性来搜索如print(soup.find_all(idlink2))输出为 [a classsister hrefhttp://example.com/lacie idlink2Lacie/a]按照CSS搜索可以通过 class_ 参数搜索有指定CSS类名的tag如print(soup.find_all(a, class_sister))输出为 [a classsister hrefhttp://example.com/lacie idlink2Lacie/a] [a classsister hrefhttp://example.com/elsie idlink1Elsie/a, a classsister hrefhttp://example.com/lacie idlink2Lacie/a, a classsister hrefhttp://example.com/tillie idlink3Tillie/a]2.4 string 参数 通过 string 参数可以搜文档中的字符串内容.与 name 参数的可选值一样如print(soup.find_all(stringElsie))输出为[Elsie] 2.5 limit 参数 可以使用 limit 参数限制搜索返回结果的数量避免返回结果很大速度很慢如soup.find_all(a, limit2)输出为 [a classsister hrefhttp://example.com/elsie idlink1Elsie/a, a classsister hrefhttp://example.com/lacie idlink2Lacie/a]2.6 recursive 参数 只搜索tag的直接子节点,可以使用参数 recursiveFalse 如 htmlheadtitleThe Dormouses story/title/head ...不使用recursive 参数 print(soup.html.find_all(title))输出为 [titleThe Dormouses story/title]使用recursive 参数 print(soup.html.find_all(title, recursiveFalse))输出为 []3 find() find_all() 方法的返回结果是值包含一个元素的列表,而 find() 方法直接返回结果find_all() 方法没有找到目标是返回空列表, find() 方法找不到目标时,返回 None。如print(soup.find(nosuchtag))输出为None。参数原型 find( name , attrs , recursive , string , **kwargs )4 find_parents()和find_parent() 参数原型 find_parents( name , attrs , recursive , string , **kwargs )find_parent( name , attrs , recursive , string , **kwargs )find_parents() 和 find_parent()用来搜索当前节点的父辈节点find_all() 和 find() 只搜索当前节点的所有子节点,孙子节点等如 a_string soup.find(stringLacie) print(a_string) print(a_string.find_parents(a))输出为 Lacie [a classsister hrefhttp://example.com/lacie idlink2Lacie/a]5 find_next_siblings() 和 find_next_sibling() 参数原型 find_next_siblings( name , attrs , recursive , string , **kwargs )find_next_sibling( name , attrs , recursive , string , **kwargs )这2个方法通过 .next_siblings 属性对当tag的所有后面解析的兄弟tag节点进行迭代find_next_siblings() 方法返回所有符合条件的后面的兄弟节点find_next_sibling() 只返回符合条件的后面的第一个tag节点如 first_link soup.a print(first_link) print(first_link.find_next_siblings(a)) first_story_paragraph soup.find(p, story) print(first_story_paragraph.find_next_sibling(p))输出为 a classsister hrefhttp://example.com/elsie idlink1Elsie/a [a classsister hrefhttp://example.com/lacie idlink2Lacie/a, a classsister hrefhttp://example.com/tillie idlink3Tillie/a] p classstory.../p6 find_previous_siblings() 和 find_previous_sibling() 参数原型 find_previous_siblings( name , attrs , recursive , string , **kwargs )find_previous_sibling( name , attrs , recursive , string , **kwargs )这2个方法通过 .previous_siblings 属性对当前tag的前面解析的兄弟tag节点进行迭代find_previous_siblings() 方法返回所有符合条件的前面的兄弟节点find_previous_sibling() 方法返回第一个符合条件的前面的兄弟节点。 7 find_all_next() 和 find_next() 参数原型 find_all_next( name , attrs , recursive , string , **kwargs )find_next( name , attrs , recursive , string , **kwargs )这2个方法通过 .next_elements 属性对当前tag的之后的tag和字符串进行迭代find_all_next() 方法返回所有符合条件的节点find_next() 方法返回第一个符合条件的节点。 8 find_all_previous() 和 find_previous() 参数原型 find_all_previous( name , attrs , recursive , string , **kwargs )find_previous( name , attrs , recursive , string , **kwargs )这2个方法通过 .previous_elements 属性对当前节点前面的tag和字符串进行迭代find_all_previous() 方法返回所有符合条件的节点find_previous() 方法返回第一个符合条件的节点。 9 本文涉及的源码 # -*- coding:utf-8 -*- # 作者NoamaNelson # 日期2023/2/17 # 文件名称bs04.py # 作用beautifulsoup的应用 # 联系VX(NoamaNelson) # 博客https://blog.csdn.net/NoamaNelsonfrom bs4 import BeautifulSouphtml_doc htmlheadtitleThe Dormouses story/title/head body p classtitlebThe Dormouses story/b/pp classstoryOnce upon a time there were three little sisters; and their names were a hrefhttp://example.com/elsie classsister idlink1Elsie/a, a hrefhttp://example.com/lacie classsister idlink2Lacie/a and a hrefhttp://example.com/tillie classsister idlink3Tillie/a; and they lived at the bottom of a well./pp classstory.../psoup BeautifulSoup(html_doc, html.parser) # 过滤器 # 字符串 print(soup.find_all(b)) # 正则表达式 import re for tag in soup.find_all(re.compile(^b)):print(tag.name) # 列表 print(soup.find_all([a, b])) # True for tag in soup.find_all(True):print(tag.name)# find_all() print(soup.find_all(title)) print(soup.find_all(idlink2)) print(soup.find_all(a, class_sister)) print(soup.find_all(stringElsie)) print(soup.find_all(a, limit2)) print(soup.html.find_all(title, recursiveFalse))# find() print(soup.find(nosuchtag)) a_string soup.find(stringLacie) print(a_string) print(a_string.find_parents(a)) first_link soup.a print(first_link) print(first_link.find_next_siblings(a)) first_story_paragraph soup.find(p, story) print(first_story_paragraph.find_next_sibling(p))
http://www.dnsts.com.cn/news/145605.html

相关文章:

  • 广州做网站的网络公司排名合川集团网站建设
  • 央企直招出国劳务网站上海网站建设找哪家
  • 微网站的案例学互联网需要什么学历
  • 海洋网站建设网络wordpress 谷歌登陆不了
  • 微信平台可以做微网站吗德阳百度网站建设
  • 免费学校网站模板html汉化主题做网站
  • 爱站工具包的主要功能wordpress评论邮件
  • 怎么用源码做网站视频可爱风格网站
  • 网站开发php是什么意思整站排名服务
  • 电子商务网站栏目wordpress导航制作
  • 网站建设与维护考试网页设计与制作课程代码
  • 好的专题网站包装设计师
  • 网站类型分类高端网站建设个人
  • 兼职网站建设策划书小杨哥直播带货平台
  • 如何设计微商城网站建设做组织架构图的网站
  • 中国能源建设招标网站我想做社区团购怎么做
  • 成都html5网站建设为什么打开Wordpress很慢
  • 口腔网站设计图建立什么船籍港
  • 做公司网站图片算是商用吗哈尔滨网站制作公司电话
  • 网站设计赚钱吗企业搭建pc端网站
  • 做招聘网站怎么运作潍坊市建设厅网站
  • 青岛正规网站设计公司郑州做网站公司中
  • 淘客网站模板网站开发技术最新技术
  • 南阳网站关键词建设网站的公司兴田德润可以吗
  • 商河网站建设淘宝关键词推广
  • 专业柳州网站建设哪家好完成职教集团网站建设
  • 网站策划书哪个容易做做个app
  • 免费网站软件app大全WordPress网站小程序
  • 电商服务站点建设方案wordpress 怎么加页面
  • 低多边形生成网站泰安房价走势图