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

巨细!小姐姐告诉你关于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 基础知识及用法基本上已经概述完毕,有差池的地方希望大家海涵,我们一起努力前行。


中欧周蔚文在管产品于2022年一季度增加新能源科技的配置,未来把握两类投资机会4月22日,资本邦了解到,中欧基金基金经理周蔚文在管的中欧新蓝筹(166002)公布了2022年第一季度财报。周蔚文目前在管17只产品,管理总规模达到883。73亿元,是业内妥妥的海洋中发现5000多种新RNA病毒!研究海洋和病毒对人类有何意义?央广网北京4月22日消息据中央广播电视总台中国之声新闻超链接报道,今天(22日)是第53个世界地球日,主题是珍爱地球,人与自然和谐共生。世界地球日被设立在每年的4月22日,是一个专买车票更方便了!12306上线新功能支持购买20省份汽车票4月22日消息,铁路12306官方宣布,12306App正式支持汽车票票务服务功能。乘客可以直接在App上购买汽车票,不再需要辛苦寻找当地客运站的网络购票渠道,也不需要跑到其他订票京东方和面板行业扫盲最近两周花了不少时间学习了京东方的基本面,翻看了京东方大V们以前的帖子,自己也查了些资料。今天把零散的内容整理了一下,做个分享,希望能让新手们不用查资料就能快速的了解京东方和面板行realme真我Q5Pro和realmeGTNeo2,价格一样如何选择?realme真我Q5Pro其实就是realmeGTNeo2的换壳版本,两个手机的三围体重基本一致realmeQ5Pro机身重量194。5g宽度75。8mm厚度8。65mm长度162全民电动车时代要来了?电池成本飙升只是暂时的智通财经APP获悉,由于供应链中断西方对俄罗斯金属的制裁和投资者投机行为,造成电池成本上升。但尽管锂离子电池的平均成本从去年的105美元千瓦时飙升至今年第一季度的160美元千瓦时,别再买128GB内存了,这3款12GB256GB全新5G手机,价格不到1999元春日生活打卡季大家都知道,手机的存储空间一直是我们买手机比较关注的一方面,目前手机的储存空间也越来越大,128G版本已经满足不了多数人的需求了。今天小编分享3款12GB256GB全Airbnb宣布允许员工永久远程工作Airbnb周四表示,其员工将永远可以在任何地方工作,包括他们的家办公室或在不同国家旅行时。Airbnb首席执行官布莱恩切斯基(BrianChesky)在给员工的电邮中说,在生活成诺基亚(NOK。US)CEORajeevSuri公司退出俄罗斯的工作正在顺利进行诺基亚(NOK。US)CEORajeevSuri公司退出俄罗斯的工作正在顺利进行。诺基亚(NOK。US)公司简介诺基亚公司是全球领先的手机制造商,其生产的一系列手机配备了许多服务和中国移动多项特色业务利民惠民更便民中国移动心级服务客户服务品牌发布以来,中国移动不断创新服务,持续优化产品功能,面向个人家庭用户推出多项特色业务,包括5G消息视频彩铃咪咕视频和彩云等系列特色产品,让广大客户体验和感让四季滑雪梦成真京东运动三减三优助雪乐山迈向更高目标2015年,受到北京申办冬奥会成功的激励,雪乐山董事长王展与一群热爱滑雪立志将冰雪体育推向全国的人走到了一起,雪乐山室内滑雪横空出世。室内滑雪场这种把雪场搬运到各家门口的模式完美打
今天来讲讲ADAS如何了解一辆车的ADAS水平?ADAS系统是英文AdvancedDriverAssistanceSystem的简称,即高级驾驶辅助系统,也被称为自动驾驶辅助系统。是利用安装在车上的各式各样传感器(毫米波雷达激光蔚来车主大战蔚来车主最开始,是一个年轻的蔚来车主疑似开了蔚来的辅助驾驶功能而发生了车祸,这件事让蔚来站上了风口浪尖。于是很多评论文章说蔚来夸大宣传啦,没有告诉车主辅助驾驶不是自动驾驶,为了把车卖出去,思必驰汽车前装赛道加速,成绩亮眼汽车产业正处于从驱动动力控制方式到产品形态运行管理全方位颠覆性变化的拐点,飞行汽车立体巴士自动驾驶的概念落地提上日程,人工智能赋能汽车产品化已成为新一轮科技革命和产业变革的主要特征经典咏流传第二季完美收官,读诗成曲全民传唱经典5月11日,经典咏流传第二季感动收官。节目通过旋律新编歌曲演绎大众传播,强化经典诗词的时代性,深入挖掘中国优秀传统文化的当代价值。第二季共播出十一期,截至目前,豆瓣评分8。4,网络新技术驱动下的数字化转型,思必驰AI车载方案识人懂人从端到端的口语交互系统(云端)和多模态人机混合智能,再到智慧出行个性推荐等多样化交互需求,车载语音已进入体验闭环期这一新阶段。6月18日至19日,由上海市汽车工程学会主办的国际汽车读诗热潮从何而来?国风歌手李玉刚带你重返学生时代在近期经典咏流传中,古风歌手李玉刚给大家演示了一款诵读声秒变歌声的黑科技读诗成曲。而后,李玉刚一袭白衣,演绎他的新作和项王歌,演唱过程中,历史的风尘仿佛也随着他的虞姬披风被悄然揭开思必驰助力华尔思推出H6智能音乐主机,引领智能家居新时代2019年4月19日,华尔思2019春季新品发布会在青岛东晖国际大酒店台北厅举行。现场吸引了包括CCTV央视网网易网搜狐网新浪网腾讯网等多家主流媒体出席。发布会现场推出了多款智能硬山东大学百年学堂行业之所伏,企业之所依大脑智能指经过大脑的信息处理或计算,主要包括感知识别反应情绪推理理解发现意图规划搜索评估决策以及控制和通信等能力。过去被认为人脑独有的智能力,直到发现人造的机器也可以具备。至今,已思必驰携手博泰,共创汽车智能语音新声代据数据显示,到2023年之前智能车载的渗透率将会超过50。同时,智能语音交互也必然会汽车的标准配置。而近年来跨平台开放合作浪潮愈演愈烈。相互借力,孕育新的市场机会是未来互联网商业模思必驰CMO龙梦竹特邀出席英特尔直播节近年来,人工智能已经成为时代标签。产业链的变革,AI及AI的专业分化进程的加速,催生着人工智能技术的飞速发展。对话式交互多模态融合沉浸式多设备场景化持续迭代和进化都是这个时代的典型思必驰特邀出席长城汽车智创未来活动,进阶车载前装市场从后装到前装,AI推进着人机交互方式的变迁,从按钮点击到屏幕触摸再到无屏语音,语音交互对车载市场而言,已经从锦上添花变为了刚需体验。2018年全球自动驾驶论坛曾指出国内2017年前