Python 数据分析用库 获取数据(二)

Beautiful Soup

Python的Beautiful Soup(常被称为"美丽汤")是一个用于解析HTML和XML文档的第三方库,它在网页爬虫和数据提取领域具有广泛的应用。

作用

  1. HTML/XML解析
    • Beautiful Soup能够解析HTML和XML文档,包括不规范的标签和嵌套错误,自动修复这些问题,使文档结构更加规范。
    • 它将HTML或XML文档转换为一个树形结构,便于遍历和访问文档中的各个元素。
  2. 数据提取
    • 开发者可以使用Beautiful Soup轻松提取HTML或XML文档中的文本内容、标签属性等信息。
    • 它提供了强大的搜索功能,如find()和find_all()等方法,以及兼容CSS选择器的查找方式,简化了数据提取过程。
  3. 文档修改
    • Beautiful Soup还支持对HTML或XML文档进行修改,包括添加、删除和修改元素的属性和内容。
    • 这使得开发者可以根据需要对文档进行定制化处理。

优点

  1. 简单易用
    • Beautiful Soup提供了一种直观和简洁的方式来解析和遍历HTML/XML文档。
    • 它的API设计考虑了Python开发者的习惯,使得代码易于编写和理解。
  2. 容错性强
    • 在处理不规范的HTML文档时,Beautiful Soup表现出色,能够自动修复标签嵌套和缺失的情况。
    • 这使得它在处理来自互联网的HTML文档时更加可靠。
  3. 灵活性高
    • Beautiful Soup提供了灵活的查询和过滤功能,可以根据元素的标签名、属性、内容等进行定位和筛选。
    • 它支持多种解析器,如内置的"html.parser"、"lxml"和"html5lib",开发者可以根据需要选择最适合自己的解析器。
  4. 功能丰富
    • 除了基本的解析和提取功能外,Beautiful Soup还支持对文档进行修改、格式化输出等高级功能。
    • 它还提供了丰富的异常处理机制,能够捕获并处理HTTP请求中的各种错误。

参考网页:https://blog.csdn.net/g310773517/article/details/139553800

Scrapy

Python的Scrapy是一个基于Twisted的异步处理框架,是纯Python实现的开源网络爬虫框架。

作用

Scrapy框架的主要作用是用于抓取网页数据、数据清洗、存储及数据分析,具体功能包括:

  1. 数据抓取:Scrapy可以自动地抓取网站上的数据,包括HTML、XML、JSON等格式的数据。通过定义爬虫规则,Scrapy可以按照预设的逻辑和路径,自动地访问和抓取网站上的数据。
  2. 数据清洗和整理:Scrapy可以将抓取的数据进行清洗和整理,去除无关的噪声数据,提取出需要的数据字段。
  3. 数据存储:Scrapy支持将抓取的数据存储到各种数据库、文件或云存储中,方便后续的数据分析和应用。
  4. 数据分析和挖掘:通过抓取大量的数据,使用Scrapy可以分析数据的趋势、模式和关联关系等,挖掘出有价值的信息和商业洞察。
  5. 网站监控和预警:Scrapy可以用于网站监控和预警,通过定期抓取网站的状态和内容,分析网站的变化和异常情况,及时发现和处理问题。

优点

  1. 速度快:Scrapy使用Twisted异步网络库来处理网络通信,使得并发处理网页非常快速。
  2. 可扩展性强:Scrapy的架构清晰,模块之间的耦合程度低,开发者可以轻松地定制和扩展爬虫以适应各种需求。同时,Scrapy还支持各种中间件和插件,可以方便地扩展其功能。
  3. 高效:Scrapy的设计是灵活的,支持多并发处理任务,可以在同一时间处理多个请求,大大提高了爬取效率。
  4. 持久性:Scrapy提供了日志系统、scrapyd服务、scrapyd-client等工具,方便进行爬虫的部署和管理。
  5. 易于使用:Scrapy提供了简单易用的API,使得编写爬虫变得简单,甚至不需要太多的Python知识。
  6. 内置选择器:Scrapy内置了CSS选择器和XPath选择器,可以方便地从网页中提取数据。
  7. 遵守规则:Scrapy默认遵守Robots.txt规则,可以避免爬虫被封禁。
  8. 多种爬取策略:Scrapy支持广度优先和深度优先两种爬取策略,可以根据需要选择最合适的策略。
Scrapy部分结构:


注:Scrapy是一个框架项目,一般是在pycharm里面进行建立之后,根据Scrapy的结果进行构建对应的代码和爬虫逻辑。

参考文档:https://blog.csdn.net/weixin_52122271/article/details/120140632

相关推荐
ZhengEnCi5 小时前
09bad-斯坦福CS336作业一-构建优化器
人工智能
ZhengEnCi6 小时前
09bac-斯坦福CS336作业一-实现训练损失计算
人工智能
冬奇Lab6 小时前
Skill 系列(01):Skill 评测体系——如何量化一个 AI Skill 的质量
人工智能
兵慌码乱8 小时前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
IT_陈寒9 小时前
Redis内存爆了,原来我漏掉了这个致命配置
前端·人工智能·后端
luckdewei11 小时前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化
python
用户35218024547511 小时前
🎆从 Prompt 到 Skill:让 Spring AI Agent 学会"装新技能"
人工智能·spring boot·ai编程
米小虾11 小时前
手把手教你搭建第一个生产级AI Agent:从选型到实战的完整指南
人工智能·agent
任沫11 小时前
Agent之Function Call
javascript·人工智能·go
米小虾11 小时前
2026年AI Agent全面爆发:从开源生态到企业级应用的进化之路
人工智能·agent