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

相关推荐
躺平大鹅2 小时前
5个实用Python小脚本,新手也能轻松实现(附完整代码)
python
m0_563745112 小时前
误差卡尔曼滤波在VINS-mono中的应用
人工智能·机器学习
yukai080082 小时前
【最后203篇系列】039 JWT使用
python
恣逍信点3 小时前
《凌微经 · 理悖相涵》第六章 理悖相涵——关系构型之模因
人工智能·科技·程序人生·生活·交友·哲学
晚霞的不甘3 小时前
Flutter for OpenHarmony 可视化教学:A* 寻路算法的交互式演示
人工智能·算法·flutter·架构·开源·音视频
小程故事多_803 小时前
Agent Infra核心技术解析:Sandbox sandbox技术原理、选型逻辑与主流方案全景
java·开发语言·人工智能·aigc
陈天伟教授3 小时前
人工智能应用- 语言处理:02.机器翻译:规则方法
人工智能·深度学习·神经网络·语言模型·自然语言处理·机器翻译
独好紫罗兰3 小时前
对python的再认识-基于数据结构进行-a006-元组-拓展
开发语言·数据结构·python
Dfreedom.3 小时前
图像直方图完全解析:从原理到实战应用
图像处理·python·opencv·直方图·直方图均衡化
人机与认知实验室3 小时前
一些容易被人工智能取代的职业
人工智能