范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

巨细!小姐姐告诉你关于BeautifulSoup的一切(续)

  作者:潮汐
  来源:Python 技术详细了解 BeautifulSoup 爬虫
  前面第一篇文章是关于 BeautifulSoup 爬虫的基础知识详解第一部分,主要介绍了 BeautifulSoup 爬虫的安装过程及简介,同时又快速学习了利用 BeautifulSoup 技术定位标签、获取标签内容的相关知识点,今天的文章将深入地介绍 BeautifulSoup 技术的详细语法及其相关用法。 1.BeautifulSoup 对象
  BeautifulSoup 将复杂的 HTML 文档转换成一个树形结构,每个节点都是 Python 对象,BeautifulSoup 官方文档将所有的对象归纳为以下四种: Tag NavigableString BeautifulSoup Comment
  接下来详细介绍 BeautifulSoup 的四个对象:
  Tag
  Tag 对象表示 XML 或 HTML 文档中的标签,通俗地讲就是 HTML 中的一个个标签,该对象与 HTML 或 XML 原生文档中的标签相同。Tag 有很多方法和属性,BeautifulSoup 中定义为 soup.Tag,其中 Tag 为 HTML 中的标签,比如 a、title 等,其结果返回完整的标签内容,包括标签的属性和内容等。例如以下实例就是 Tag: BeautifulSoup 技术详解 

Hello

Python 技术   以上的 HTML 代码中,title、p 都是标签,起始标签和结束标签之间加上内容就是 Tag。标签获取方法代码如下: #创建本地文件soup对象 soup = BeautifulSoup(open("test.html","rb"), "html.parser") #获取a标签 a = soup.a #Tag print("a标签的内容是:", a)   除此之外,Tag 中最重要的属性是 name 和 attrs 。 name   name 属性用于获取文档树的标签名字,如果想获取 title 标签的名字,只要使用 soup.title.name 代码即可,对于内部标签,输出的值便为标签本身的名称。 attrs attrs是属性(attributes)的英文简称,属性是网页标签的重要内容。一个标签(Tag)可能有很多个属性,例如:ddd   以上实例存在两个属性,一个是class属性,对应的值为"xiaodu";一个是id属性,对应的值为"l1"。Tag属性操作方法与Python字典相同,获取p标签的所有属性代码如下,得到一个字典类型的值,它获取的是第一个段落 p 的属性及属性值。 # 获取属性 print(soup.p.attrs) # 获取属性值 print(soup.a["class"]) #[u"xiaodu"] print(soup.a.get("class")) #[u"l1"]   BeautifulSoup 每个标签 tag 可能有很多个属性,可以通过 ".attrs" 获取属性,tag 的属性可以被修改、删除或添加。   NavigableString   NavigableString 也叫可遍历的字符串,字符串常被包含在 tag 内,BeautifulSoup 用 NavigableString 类来包装tag中的字符串,   BeautifulSoup 用 NavigableString 类来包装 tag 中的字符串,NavigableString 表示可遍历的字符串。一个 NavigableString 字符串与 Python 中的 Unicode 字符串相同,并且支持包含在遍历文档树和搜索文档树中的一些特性。下述代码可查看 NavigableString 的类型。 # coding=utf-8 from bs4 import BeautifulSoup soup = BeautifulSoup(open("test.html","rb"), "html.parser") tag = soup.title print(type(tag.string))   输出结果如下:   BeautifulSoup   BeautifulSoup 对象表示的是一个文档的全部内容,通常情况下把它当作 Tag 对象,该对象支持遍历文档树和搜索文档树中描述的大部分的方法,下面代码是输出 soup 对象的类型,输出结果就是 BeautifulSoup 对象类型。# coding=utf-8 from bs4 import BeautifulSoup soup = BeautifulSoup(open("test.html","rb"), "html.parser") tag = soup.title print(type(soup))   输出结果如下:   因为 BeautifulSoup 对象并不是真正的 HTML 或 XML 的标签 tag,所以它没有 name 和 attribute 属性。但有时查看它的 .name 属性是很方便的,故 BeautifulSoup 对象包含了一个值为[document] 的特殊属性soup.name 。下述代码即是输出 BeautifulSoup 对象的 name 属性,其值为 [document]。   Comment   Comment 对象是一个特殊类型的 NavigableString 对象,它用于处理注释对象。下面这个示例代码用于读取注释内容,代码如下: markup = "" soup = BeautifulSoup(markup, "html.parser") comment = soup.b.string print(type(comment)) print(comment) if __name__ == "__main__": mark()   输出结果如下: hello comment code 2.遍历文档树   以上内容讲解完 4 个对象后,下面的知识讲解遍历文档树和搜索文档树以及 BeatifulSoup 常用的函数。在 BeautifulSoup 中,一个标签(Tag)可能包含多个字符串或其它的标签,这些称为这个标签的子标签。   咱们继续用以下超文本协议来讲解: BeautifulSoup 技术详解

Hello

Python 技术 ddd 子节点   一个Tag可能包含多个字符串或其它的Tag,这些都是这个Tag的子节点,Beautiful Soup 提供了许多操作和遍历子节点的属性。   例如获取标签子节点内容: # coding=utf-8 from bs4 import BeautifulSoup soup = BeautifulSoup(open("test.html","rb"), "html.parser") tag = soup.title print(soup.head.contents)   输出结果如下: [" ", BeautifulSoup 技术详解, " "]   注意: Beautiful Soup中字符串节点不支持这些属性,因为字符串没有子节点。   节点内容   如果标签只有一个子节点,需要获取该子节点的内容,则需要使用 string 属性,以此输出节点的内容: # coding=utf-8 from bs4 import BeautifulSoup soup = BeautifulSoup(open("test.html","rb"), "html.parser") tag = soup.title print(soup.head.string) print(soup.title.string)   输出结果如下: None BeautifulSoup 技术详解 父节点   调用 parent 属性定位父节点,如果需要获取节点的标签名则使用 parent.name。实例如下: # coding=utf-8 from bs4 import BeautifulSoup soup = BeautifulSoup(open("test.html","rb"), "html.parser") tag = soup.title p = soup.p print(p.parent) print(p.parent.name) content = soup.head.title.string print(content.parent) print(content.parent.name)   输出结果如下:

Hello

Python 技术 ddd body BeautifulSoup 技术详解 title 兄弟节点   兄弟节点是指和本节点位于同一级的节点,其中 next_sibling 属性是获取该节点的下一个兄弟节点,previous_sibling 则与之相反,取该节点的上一个兄弟节点,如果节点不存在,则返回 None。print(soup.p.next_sibling) print(soup.p.prev_sibling) 前后节点   调用属性 next_element 可以获取下一个节点,调用属性 previous_element 可以获取上一个节点,代码举例如下:print(soup.p.next_element) print(soup.p.previous_element) 3.搜索文档树   BeautifulSoup 定义了很多搜索方法,例如 find() 和 find_all() ; 但find_all() 是最常用的一种方法,而更多的方法与遍历文档树类似,包括父节点、子节点、兄弟节点等,使用find_all()方法的代码如下:# coding=utf-8 from bs4 import BeautifulSoup soup = BeautifulSoup(open("test.html","rb"), "html.parser") tag = soup.title urls = soup.find_all("p") for u in urls: print(u)   输出结果如下:

Hello

Python 技术   使用 find_all() 可以查找到想要查找的文档内容。总结   至此,阿酱理解范围内的 BeautifulSoup 基础知识及用法基本上已经概述完毕,有差池的地方希望大家海涵,我们一起努力前行。


石锤了!iPhone13Pro上的5核GPU比iPhone12Pro强55手机处理器上的GPU在现在越来越重要了,它的性能高低直接能决定手机能不能进行多任务,后期处理照片以及游戏能否满帧高画质运行,今天最新测试结果石锤了iPhone13Pro5核心GPU看不懂WIFI6E,错过的将是整个物联网时代推动社会进步的最重要的因素是什么?古典经济学家认为是土地和人力,但两次工业革命给人类社会所带来的颠覆性影响,让所有经济增长模型中都添加一项重要的影响因子,即科学技术。不过看懂技术不3万多预算想买车,续航还能不能低?选这两款车一定没错五菱宏光MINIEV的热销让不少厂家看到微型电动车的巨大潜力,它们纷纷开始布局这种类型的新能源汽车。这种车型拥有比较低的门槛,很多朋友都会选择这种车型进行使用。难道这个级别只有五菱iPhone13预约首秀抢光,如此受欢迎,难道是因为不爱国吗?越来越觉得美国苹果公司,就像美国这个国家本身,美国这个世界上唯一的超级大国,2018年GDP总量首破20w亿美元,目前仍然在增长。苹果公司自从库克接管以来,从市值3,000亿美金,OPPOk9Pro入网,这次看起来真的是中端机了?OPPOk9Pro系列手机入网了,这个手机看起来是之前手机的升级版,当然对于这个手机来讲,看起来配置还不错?简单看看这个手机吧!使用联发科的天玑1200芯片!6。43寸的AMOLEiPhone13依旧是刘海屏,未来几年或将无法改变,原因和这有关全新的iPhone13已经发布,不少准备换机的朋友还是选择暂时观望,原因是苹果在iPhone上缺乏创新,就说刘海屏吧,它已经存在4年之久了,为啥一直没有全面屏,原因就在这个Face把元宇宙给你讲透彻,元宇宙探索尾附带相关概念股票世界大咖描述中的元宇宙1无数人渴望知道互联网后的下一个时代应该如何被定义,下一个巨头将在何处诞生。目前,Metaverse给我们提供了一个模糊正确的未来方向,正在塑造一种强有力的社于佳宁元宇宙是互联网下一个发展阶段Web3。02021年,元宇宙一个寂寥了29年的概念,随着游戏公司Roblox的上市而大火,Facebook将元宇宙定为公司五年核心战略,腾讯字节跳动等互联网巨头纷纷加入元宇宙赛道,以抢占下一魅族19Pro背水一战,16G1TB仅6299!5200mAh80W快充今年对于魅族来说发生了比较大的事情,首先是他宣布子品牌魅蓝重新回归大众视野,其次是他要抓住5G换新机会冲销量,所有大家可以看到今年发布的魅族新机很多,比去年多了好几倍。接下魅族会有无线卡信号差?路由摆放有讲究01hr调整路由器的摆放位置我们都知道,越靠近路由器的地方无线信号越强。缩短无线路由与客户端(手机笔记本等等)的距离,将路由放置在活动范围的中心区域(木头柜子上桌面上等等),都可以OPPO2399元!oppok9pro官方渲染图曝光搭载联发科芯片今日,oppoK9Pro的官方渲染图曝光了,配置信息和售价也曝光得差不多了。8128应该是2399元,最高配12256据爆料不会超过3000元,该信息仅供参考,具体售价以发布时为准
家里老人耳朵不好,配助听器有效果吗?该如何挑选助听器?有残余听力助听器就有帮助的具体效果可以亲自试听根据实际听力损失程度损失性质还有想要解决的问题选择适合的助听器您好,您的问题是家里老人耳朵不好,配助听器有效果吗?该如何挑选助听器。助有哪些养眼又耐看,可以当手机壁纸用的美女写真套图?这些行不行?孟子义的一套写真感觉很好爱慕爱慕玫瑰玫瑰这张如何这张如何大家好!我是捻纸为画,一个致力于分享各种各样的高清全屏壁纸的小白,希望我的分享你能够喜欢,并出现在你的手机屏幕上科技进步没有悲观主义者想象得那么慢,也没有乐观主义者想象得快过于乐观主义者再过二三十年人类就成神了,就永生了,甚至要实现共产主义了。过于悲观主义者人类科技大停滞了,因为在人类老龄化的时候ai达不到人脑水平就会因为劳动力不足而生活水平下降。真编程什么时候使用静态类?结论如果你的类没有状态,仅为其方法存在那么可以创建一个静态类。譬如工具类Utilities。静态类是纯面向对象设计和简单性之间的折衷。以下几点需要考虑1静态类应该只用作框架的面向对部分手机App进行适老化改造,却还是引发老年人吐槽第48次中国互联网络发展状况统计报告显示,截至2021年6月,中国10。11亿网民中60岁及以上网民群体占比达到12。2,网民的增长主体由青年群体向未成年和老年群体转化的趋势日益明浙商证券给予威唐工业买入评级20220116浙商证券股份有限公司王华君对威唐工业进行研究并发布了研究报告威唐工业点评报告业绩拐点向上,新能源汽车冲压件大幅增长,本报告对威唐工业给出买入评级,当前股价为18。1季度投诉榜第一!苹果手机乱扣钱现象屡禁不止,底线何在?苹果手机一直没用过。也不知道怎么去评论它。但是,有一件事是苹果公司终止了很多和他专业合作的中国企业。使中国企业遭受了很大的损失。一个没有诚信的企业不应该到我们国家。至于苹果手机乱扣一万多的洋垃圾夏普R6搭载1英寸传感器旗舰机以沦为千元机夏普于今天正式发布全新的旗舰手机夏普AquosR6,夏普这个品牌最新的一款手机还是去年的AquosR5G,配备的是骁龙865,没想到今年居然还憋了个大招,下面让我们一起看看吧1。外令你相见恨晚的华为手机使用技巧一关于截屏华为手机的截屏功能非常强大而且智能。大部分人的截屏方式是同时按住音量下键电源键来实现的。那么有没有更快速的截屏方式呢。1使用指关节用力敲击2双击截取全屏或者敲击并绘制封闭苹果与安卓手机比较谈手机领域,苹果系统一枝独秀,安卓系统百花争艳。从我的使用体会,苹果手机芯片强,品控好,做工精,设计美。我尤其欣赏其长宽的比例设计及边框以中心线为轴到前后两面边线的对称设计。并且大中手机为什么会越用越卡?原因在这三点,看懂不用年年换新机现如今手机已经成为我们生活密不可分的一部分,大部分人的日常衣食住行都能通过手机实现,近些年手机的发展是相当迅速,和前几年相比变化十分巨大。无论是手机的续航屏幕拍照性能各个方面都有了