2022-11-20-使用BeatuifulSoup进行页面内容的获取

简介: 2022-11-20-使用BeatuifulSoup进行页面内容的获取

一、什么是DOM树

DOM树是一种结构,树是由DOM元素和属性节点组成的,DOM的本质是把html结构化成js可识别的树模型,有了树模型,就有了层级结构,层级结构是指的是元素和元素之间的关系父子、兄弟。

实例:

我的标题

我的链接

二、使用BeatuifulSoup进行页面内容的获取

什么是BeatuifulSoup?

BeautifulSoup是一个Python库,用于解析HTML和XML文档中的数据(结构化数据)。

流程:

①浏览并检查网站/网页

要使用开发者工具导航,右键单击该网页,选择检查。

②创建用户代理

用户代理是客户端(通常是Web浏览器),用于代表用户向Web服务器发送请求。当从同一台机器/系统一次又一次地获取自动化请求时,Web服务器可能会猜测该请求是自动化发送的。它会阻止了该请求。因此,我们可以使用用户代理来伪造浏览器,访问特定网页,从而使服务器认为请求来自原始用户,而不是机器人。

# 创建 User-Agent (可选)
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36"}# 将User-Agent作为参数与get()请求一起传递
response=requests.get("https://news.buaa.edu.cn/info/1002/57293.htm",headers=headers)

③导入请求库

Requests 请求库允许我们发送 get 请求到Web服务器。

运作方式如下:

import requests 该库以一种易于处理的格式,处理从服务器请求网站的细节。

使用 requests.get(…) 方法访问网站,并将URL 作为参数传递, 以便函数知道要访问的位置。

访问get请求的实际主体(返回值是一个请求对象,它还包含一些有用的元信息,如文件类型等),并使用 .text 属性将其存储在一个变量中。

# 存储网页内容
webpage = response.text
print(response.status_code)200

④使用 BeautifulSoup 库解析HTML

BeautifulSoup是一个Python库,用于解析HTML和XML文档中的数据(结构化数据)。

导入BeautifulSoup库。

创建BeautifulSoup对象。第一个参数表示HTML数据,而第二个参数是解析器。

# 从bs4导入BeautifulSoupfrom bs4 import BeautifulSoup# 从网页内容中创建一个BeautifulSoup对象
soup = BeautifulSoup(webpage, "lxml")

创建BeautifulSoup对象后,我们需要使用BeautifulSoup 库提供给我们的不同选项来导航和查找HTML文档中的元素,并从中抓取数据。

⑤使用 select() 方法,快速找到标签元素

soup.select(‘.subnav’)

三、实现截图



目录
相关文章
|
6月前
|
人工智能 自然语言处理 Cloud Native
大型企业如何建设BI系统?2026年企业级BI系统建设方案与实施路径
2026年,数据成为大型企业核心生产要素。面对跨地域、多业态、海量异构数据挑战,传统BI已难支撑实时决策与业务敏捷性。瓴羊Quick BI以云原生架构、AI增强分析(自然语言查询、自动归因)、企业级安全管控及本土化复杂报表能力,助力企业构建高效、智能、可落地的商业智能系统,加速数据价值变现。(239字)
|
人工智能 PyTorch 测试技术
【AI系统】并行训练基本介绍
分布式训练通过将任务分配至多个节点,显著提升模型训练效率与精度。本文聚焦PyTorch2.0中的分布式训练技术,涵盖数据并行、模型并行及混合并行等策略,以及DDP、RPC等核心组件的应用,旨在帮助开发者针对不同场景选择最合适的训练方式,实现高效的大模型训练。
576 8
|
存储 Java
Java基础教程(7)-Java中的面向对象和类
【4月更文挑战第7天】Java是面向对象编程(OOP)语言,强调将事务抽象成对象。面向对象与面向过程的区别在于,前者通过对象间的交互解决问题,后者按步骤顺序执行。类是对象的模板,对象是类的实例。创建类使用`class`关键字,对象通过`new`运算符动态分配内存。方法包括构造函数和一般方法,构造函数用于对象初始化,一般方法处理逻辑。方法可以有0个或多个参数,可变参数用`类型...`定义。`this`关键字用于访问当前对象的属性。
235 2
|
Web App开发 JSON 程序员
老程序员分享:Python有哪些好用的语言翻译方法
老程序员分享:Python有哪些好用的语言翻译方法
337 0
|
SQL 监控 数据可视化
数据之美 - 为你揭秘数据体验技术
数据体验技术团队从一开始建立就致力于打造数据领域体验技术的标杆。经过多年的深耕,形成了一整套面向两个阶段的用户产品的体验技术架构。
数据之美 - 为你揭秘数据体验技术
|
弹性计算 安全 物联网
阿里云ECS使用体验
ECS使用了两周的体验ECS好处多多安全,优惠,便利,应用广泛。
|
6天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
6198 8
|
4天前
|
人工智能 测试技术 API
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
Jev是TypeSafe AI推出的“系统一模型”,不生成文本,专做毫秒级结构化决策:Choice(多选)、Score(打分)、Noul(是非概率)。响应快193倍、成本低444倍,适合工单路由、内容审核、测试定级等高频判断场景。
1163 3
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
|
5天前
|
人工智能 并行计算 PyTorch
秋叶 ComfyUI 2026 整合包 v3.2 完整部署教程:Python 3.13 + Torch 2.13 全栈升级
秋叶aaaki ComfyUI 2026年8月整合包v3.2正式发布!全面升级Python 3.13.11、PyTorch 2.13.0+cu130及ComfyUI v0.30.2,原生支持MiniMax H3、Wan 2.2、Qwen-Image-2.1等2026主流音视频/图像模型,解压即用,无需环境配置。
693 4

热门文章

最新文章