新闻详情

新闻详情

首页 / 资讯中心 / 详情

Python网络爬虫——BeautifulSoup4库的使用

发布时间:2026/10/1 18:42:48来源:尧图网络
Python网络爬虫——BeautifulSoup4库的使用
使用库来获取html页面, 并将其转换成字符串之后, 需要更进一步地按照html页面的格式去进行解析工作, 以便能够把那些有用的信息给提取出来。这个库, 同时也是被叫做bs4库的在之后都会使用简写, 它主要就是用来解析和处理html以及xml的。1.调用在bs4这个库里面, 最核心、最主要的部分就是那个叫作bs的那个类了, 因为每一个被创建出来的实例化对象, 其地位都相当于一个完整的html页面, 这是需要搞清楚的关键点。需要采用from导入的方式把bs类引进来, 同时通过一个括号的形式来创建一个属于bs类的对象。代码内容如下所示。import requestsfrom bs4 import BeautifulSouprrequests.get(https://www.baidu.com/)r.encodingutf-8soupBeautifulSoup(r.text)print(type(soup))运行结果2.常用属性创建的对象, 它是一个树形结构, 它把html页面里的每一个Tag标签元素都包含在里面了, 你可以通过点点号这个形式, 来获取这些元素信息。通常所接触到的属性, 一般是指下面这几个东西。headhtml页面内容title在html页面里面的标题部分, 其实是由对应的标记来指定的。bodyhtml页面内容p:在网页页面中排为第一的那个。内容html页面里面所有展现出来给网络浏览器看的字符串, 也就是指那些标签里面的内容。在网页中所有能够直接显示出来而且内容不是空的文本字符。紧接着咱们就来试试对百度的标语“百度一下, 你就知道”进行抓取操作。我们首先通过来建立请求, 可以通过查看源代码找到对应这部分。如下所示因此呢, 只需要直接去调用对应的标签, 这样就可以了。代码如下import requestsfrom bs4 import BeautifulSouprrequests.get(https://www.baidu.com/)r.encodingutf-8soupBeautifulSoup(r.text)titlesoup.titleprint(title)结果如图所示3.标签常用属性在bs4框架里面, 每一个标签都是一个对象, 这个对象被叫做tag对象, 就拿糯米这个例子来说, 它常见的结构是下面的这个样子:糯米其中, 那个尖括号里面包含着的名字被叫做name, 其余那些项目都归属于attrs这个类别, 而夹在尖括号中间所存在的那些文字内容则代表着。因此, 大家平常会看到的标签属性, 主要就是被分成了4种。name就是那个叫字符串的东西, 还有那些标签的名称。attrs字典, 也就是那个包含了原来页面的标签的所有属性的东西, 比方说像 href 这样的属性。在列表以及那个标签下面,包含了所有属于子标签的内容。包括字符串以及标记里面所涉及的那一部分文本内容, 这些都是在网页上面能够直接看到的那种实实在在的文字表达。因为现在的人都知道, 在html这个玩意儿里面, 一个标签可以把另外一些标签给嵌套进去, 所以呢, 返回的东西必须去遵照下面提到的那些个原则。如果在那个标签内部没有其他类型的标签存在, 就会将属性所返回的那个部分的内容直接提取出来。②假如说在一个标签的内部它还有另外的标签, 但是情况只有一个, 那么我们返回那个位置最靠里的标签的内容。③要是内部存在的标签嵌套超过了1层, 就把结果当成无。我们不妨继续使用百度作为一个示例, 那么对应地, 针对我们需要定位那个排在最前面的具体标记, 所涉及到的代码写法应该是下面这样的这个样子:import requestsfrom bs4 import BeautifulSouprrequests.get(https://www.baidu.com/)r.encodingutf-8soupBeautifulSoup(r.text)print(soup.a.string)结果如图所示4.调用那个名为find的方法, 并且再去调另外一个没有名字的括号。在html里面, 同一个特标签会有很多内容, 比如百度首页一共有13处, 但值返回第一处。所以在这一种情况之中, 是需要通过查找方法以及另一个相似的方法来实行寻找操作的, 这两个办法都具备这样的特性, 也就是都会对html文档进行遍历, 然后根据给定的条件去返回对应的内容。以下就是具体的使用方法。.name,attrs,,,limit以标签名字进行搜索, 名字用字符串类型表示。在attrs这个地方, 大家要按照标签的属性来进行搜索, 这时候需要列出属性的名字以及对应的值, 整体来说要用json方法来表示。设置查找层次的时候, 如果是只查找当前标签的下一层的话, 就使用false。根据关键字符进行查找属性内容的过程, 是以等号作为开始的标志性符号来实施的。限制条件用于规定返回结果的数量, 在没有进行特别设置的情况下默认返回全部数据。至于找那个东西的办法和使用方法是一模一样的, 这就跟括号里的写法没有区别。.name,attrs,,它们的区别在于, find函数仅仅搜索并返回第一个匹配到的结果, 而另一个方法则会把所有符合条件的结果全部返回。我们接下来尝试使用括号括号里的信息作为依据, 去把那些上面包含“百度”两个字的、叫做标签的这种东西全都找出来。第一步, 需要去调用那个名叫 re 的库, 要知道 re 它是一个标准库, 它是可以被用来针对字符串里面的内容进行检索操作的。因此, 具体的程序代码展示如下所示import requestsimport refrom bs4 import BeautifulSouprrequests.get(https://www.baidu.com/)r.encodingutf-8soupBeautifulSoup(r.text)wsoup.find_all(stringre.compile(百度))print(w)结果如下到了最后这个环节, 小编想要跟大家说一说心里话, 其实我这个人是一名开发工程师, 手里头整理出来了整整一套最新的用来帮助大家进行系统学习的教程资料, 如果你特别想要得到这些资料的化, 那就赶紧去关注一下小编, 然后再给小编发一条私信消息, 在对话框里敲上这两个数字, 也就是“01”, 这样的话就可以了, 小编在这里衷心希望这些东西能够为你带来一些实实在在的帮助。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

5G测试仪全方位解读:从NSA/SA组网到核心参数与实操避坑 2026/10/1 19:31:20

5G测试仪全方位解读:从NSA/SA组网到核心参数与实操避坑

做通信测试干了十来年,我最怕的不是仪表出故障,而是测试需求越来越复杂,手里的家伙还是老一套。5G一上来,带宽从20MHz拉到100MHz,频段从Sub-6GHz一路摸到毫米波,天线从22 MIMO直接跳到64T64R Massive MIMO&…

阅读更多 →
火山软件开发平台值不值得学?对比易语言,三大硬伤告诉你答案 2026/10/1 19:31:20

火山软件开发平台值不值得学?对比易语言,三大硬伤告诉你答案

直接写结论:火山软件开发平台和易语言,看起来像是同一家公司、同一个作者、同一个中文编程梦的延续,实际上学习曲线、底层模型、生态积累完全是另一个物种。我见过太多从易语言转到火山的人,以为自己是"老玩家转新服"&a…

阅读更多 →
Nexus3 内网统一私库:Maven/YUM/APT/npm 搭建与排错 2026/10/1 19:31:19

Nexus3 内网统一私库:Maven/YUM/APT/npm 搭建与排错

内网做构建这件事,最容易被低估的就是依赖获取这一环。项目一多、语言一杂,Maven 拉 jar、YUM 装 rpm、APT 装 deb、npm 装 node 模块,四套东西各自连各自的公网源,谁断了都得停下等。我这边的研发环境就是这么个情况,…

阅读更多 →
AI Infra架构解析:从分布式训练到推理服务的工程实践 2026/10/1 19:31:05

AI Infra架构解析:从分布式训练到推理服务的工程实践

1. AI Infra 到底在解决什么问题先把话说直白一点:AI Infra(人工智能基础设施)不是某一款软件,也不是某一个框架,而是一整套让 AI 模型能跑起来、跑得快、跑得稳、跑得省的工程体系。它横跨硬件、系统软件、调度平台、…

阅读更多 →
Jenkins环境可信度校验清单:Java版本、权限模型与JENKINS_HOME设计 2026/10/1 19:31:05

Jenkins环境可信度校验清单:Java版本、权限模型与JENKINS_HOME设计

1. 为什么Jenkins安装不是“点下一步”就能完事的?很多人第一次接触Jenkins,看到官网那句“Download Jenkins LTS”就以为万事大吉——点开链接、双击安装包、狂按“Next”,最后浏览器打开 http://localhost:8080,看到那个蓝白相间…

阅读更多 →
Visual Studio 2022搭建ONNX Runtime C++推理环境完整指南 2026/10/1 19:30:58

Visual Studio 2022搭建ONNX Runtime C++推理环境完整指南

1. 为什么我最终把 ONNX 推理环境搭在了 Visual Studio 2022 里 先说下我的实际处境。模型是 PyTorch 训练出来的,效果挺满意,但到了部署阶段就犯难了。公司生产环境是 Windows C,主程序是个老牌的 MFC 桌面应用,不能为了一个模型…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉