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”, 这样的话就可以了, 小编在这里衷心希望这些东西能够为你带来一些实实在在的帮助。

相关新闻

基于出行链的电动汽车充电策略优化:Matlab实现与工程实践

基于出行链的电动汽车充电策略优化:Matlab实现与工程实践

做电动汽车出行相关仿真的时候,我一开始跟大多数人一样,习惯把每一次出行当成一个独立的片段来处理——从A点到B点,算个里程,估个电耗,然后决定要不要充电。直到有一次我拿真实用户的轨迹数据去跑充电策略优化&#xf…

2026/10/1 18:41:47 阅读更多 →
跨卡通信决定大模型训练效率,真武V900如何把千卡拧成超级芯片

跨卡通信决定大模型训练效率,真武V900如何把千卡拧成超级芯片

单张显卡的算力早就不是秘密了,H100、MI300X、甚至国产旗舰芯片,纸面数据一个比一个漂亮。可真正做过大模型训练的人心里都清楚,千卡万卡跑起来之后,决定你是“线性扩展”还是“效率崩盘”的,根本不是单卡峰值&#xf…

2026/10/1 18:41:47 阅读更多 →
素数算法详解:从试除法到线性筛,避开这些坑

素数算法详解:从试除法到线性筛,避开这些坑

素数这玩意儿,大学课本里三行定义,实际写起来三天三夜都不一定写得干净。作为“动手学算法”系列的第04篇,这篇我打算把素数的判断、生成、进阶证明和几个容易踩的坑一次性捋清楚。不管你是为了面试刷题,还是做密码学相关开发&…

2026/10/1 18:41:47 阅读更多 →

最新新闻

ChatGPT/Claude半价使用指南:按量计费与模型路由的工程化省钱方案

ChatGPT/Claude半价使用指南:按量计费与模型路由的工程化省钱方案

上个月核对信用卡账单时我愣了一下——ChatGPT Plus 20美金,Claude Pro 20美金,再算上偶尔往API里临时充值的零头,一个月小40美金就这么没了。身边不少朋友其实都踩在同一个坑里:看到AI订阅就咬牙上了,实际用量根本没跑…

2026/10/1 19:18:04 阅读更多 →
Oracle重做日志组扩容实战:从判断依据到在线操作全流程指南

Oracle重做日志组扩容实战:从判断依据到在线操作全流程指南

做Oracle数据库运维这行,早晚都会碰到重做日志组扩容的需求。我在重庆思庄做数据库技术支持这些年,处理过不少核心生产库因为业务量上来、日志切换过于频繁导致性能下降的案例,Oracle重做日志组扩容几乎是最常见的变更操作之一。这篇文章把我…

2026/10/1 19:18:04 阅读更多 →
从零构建AI工程能力:数据、模型与推理服务实战指南

从零构建AI工程能力:数据、模型与推理服务实战指南

1. 从零搭建AI工程能力:为什么我劝你别一上来就调包这两年“AI工程”这个词被说得太多了,多到有点变味。招聘JD上写着“熟悉AI工程化落地”,点进去一看,要求会调三个API、会写Prompt、会用某个框架搭个Demo。说实话,这…

2026/10/1 19:18:04 阅读更多 →
AI性能优化安全指南:Algocode差分测试与回滚机制实践

AI性能优化安全指南:Algocode差分测试与回滚机制实践

1. 性能优化这件事,为什么让人又爱又怕 做开发的人都有一个共识:功能跑通只是及格线,性能才是拉开差距的地方。但真到了要动手改代码优化性能的时候,绝大多数人的第一反应不是兴奋,而是心虚。原因很简单—— 功能代码…

2026/10/1 19:18:04 阅读更多 →
Agent记忆架构实战:基于MCP与Docker的hindsight记忆层设计

Agent记忆架构实战:基于MCP与Docker的hindsight记忆层设计

1. 从“hindsight”说起:为什么Agent的记忆问题值得单独拎出来做“hindsight”这个词本身很有意思,字面意思是“事后的洞察力”,也就是我们常说的“后见之明”。把这个词放到Agent Memory(智能体记忆)的语境里&#xf…

2026/10/1 19:18:04 阅读更多 →
Windows平台搭建标准NTP服务器的三大可行方案

Windows平台搭建标准NTP服务器的三大可行方案

1. 为什么Windows自带的w32time不是真正的NTP Server——从协议层看本质差异很多人在搜索“Windows NTP server”时,第一反应是:Windows系统里不是自带时间服务吗?点开服务列表找到w32time,右键启动,再改个注册表&…

2026/10/1 19:17:04 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →