十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要介绍了Python中bs4有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
成都创新互联公司是一家集网站建设,萧山企业网站建设,萧山品牌网站建设,网站定制,萧山网站建设报价,网络营销,网络优化,萧山网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。bs4(Beautiful Soup)是一个可以从HTML或XML文件中提取数据的Python库 它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式 Beautiful Soup会帮你节省数小时甚至数天的工作时间
BeautifulSoup是bs4中非常重要的一个类 它利用html或xml文件快速生一个对象 我们可以借用该对象的方法和属性快速获取我们需要的数据 用法: BeatifulSoup(html, resolver) 解析器的选择,根据不同的需求选择响应的解析器
首先来看一段测试代码:
import bs4 import requests # html测试代码 #只包含一个div标签 #div中包含一个p标签,一段文本 和 一段注释 html ='' # 利用html字符串实例化BeautifulSoup对象 soup = bs4.BeautifulSoup(html,'html.parser') # 利用.div的方式访问节点 print(type(soup.div),'--->',soup.div) # 利用.class的方式访问属性 # 打印div节点中的元素和类型 for item in soup.div: print(type(item),'--->',item)p标签文本
div中文本
显示结果:
Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构 每个节点都是Python对象 所有对象可以归纳为4种 Tag , NavigableString , BeautifulSoup , Comment . >Tag对象 html文档中每一个标签都会在BeautifulSoup中以Tag形式出现 Tag中可以包含其他的Tag和其他部分对象 Tag具有许多的属性,可以用于访问标签或其子标签的属性和文本等 例如: Tag.name返回标签名 Tag.string返回标签中的文本信息(Tag仅包含一个文本时,多个用strings) Tag中的属性通过赋值修改,会改动相应html文件中标签 >NavigableString对象 Tag中的字符串用NavigableString对象来包装 作为字符串不能被直接编辑,但可以用replace()替换 在BeautifulSoup外调用需使用unicode()方法 >BeautifulSoup对象 包含一个文档的全部内容 大多数情况下可以看作是一个大的Tag对象,支持遍历和搜索文档树 >Comment 对象 Comment对象是一个特殊的NavigableString对象 用来包装文档中的注释和特殊字符串等
find和findall方法 适用对象:Tag BeautifulSoup find会返回满足条件的第一个节点 findall方法会以列表形式返回满足匹配条件的所有节点 Tag.find('a',) # 返回Tag中第一个a标签节点 Tag.find('a',class_="hello") # 返回Tag中第一个class为"hello"的a标签 Tag.find_all('p',text='p标签文本') # 返回Tag中包含(string属性为'p标签文本'的NavigableString节点)的p标签
string,strings ,text 属性和 get_text()方法 以上方法都可以用于获取文本 适用对象: string 适用于bs4中的全体对象 (Tag BeautifulSoup NavigableString Comment) strings ,text , get_text() 适用于 Tag BeautifulSoup 区别: tag.strings返回一个生成器 可以迭代获取tag节点及其子孙节点中所有的NavigableString节点 返回的是每一个元素类型都是NavigebleString节点 tag.string 当tag的子节点只包含一个NavigebleString节点,返回该节点 当tag只有一个子节点时,返回该子节点的string属性的返回值 此外均返回None tag.get_text()返回一个字符串 用于捕获该节点的所有子孙节点中的非注释文本(即NavigebleString节点的string返回值) tag.text 在bs4源码中text是接收get_text()返回值的变量 等同于tag.get_text()
感谢你能够认真阅读完这篇文章,希望小编分享的“Python中bs4有什么用”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。