Lazy loaded image
告别 CSS 选择器地狱:用 mlscraper 自动抓取数据
字数 1023阅读时长 3 分钟
2025-2-15
2025-2-15
type
status
date
slug
summary
tags
category
icon
password
😀

什么是mlscraper?

mlscraper 是一个Python库,它允许你通过提供几个 示例 来训练模型,从而自动从HTML页面抓取数据。你不需要花费大量时间来研究网页的HTML结构并编写复杂的CSS选择器,只需要告诉mlscraper你想要什么,它就能自动完成剩下的工作。
简单来说,你只需要:
  1. 提供几个你想要抓取的网页示例,并标注出你想要提取的数据。
  1. 让mlscraper学习这些示例,它会自动找出提取数据的规则。
  1. 将学习到的规则应用到新的网页,mlscraper会自动提取数据并返回给你!

为什么选择mlscraper?

  • 自动化: 不再需要手动编写CSS选择器或XPath。 通过示例进行训练,大大减少了人工干预。
  • 易于使用: 简单的API设计,几行代码即可上手。
  • 开源: 完全开源,你可以自由使用、修改和贡献代码。
  • 数据结构化: 抓取的数据以结构化的字典形式返回,方便后续处理。

如何使用mlscraper?

安装:
目前mlscraper还在版本1.0之前,你可以通过以下命令安装最新版本:
示例代码:
下面是一个简单的使用mlscraper的例子,让我们从一个名人名言网站抓取作者姓名和出生日期:
代码解释:
  1. 准备训练数据: 首先,我们从一个网页获取数据,然后创建一个Sample对象,其中包含了网页的HTML内容以及我们想要提取的数据(作者姓名和出生日期)。
  1. 训练模型: 使用train_scraper函数,将训练数据传递给mlscraper,它会自动学习提取规则。
  1. 应用到新的页面: 最后,我们将训练好的模型应用到新的网页,mlscraper会自动提取数据并返回给我们。
Tips:
  • 为了获得更好的效果,请提供至少两个以上的训练样本。 样本越多,mlscraper学习到的规则就越准确。
  • 确保训练数据中的信息是准确的,这直接影响到最终提取结果的准确性。

进阶使用

除了基本的示例之外,mlscraper还提供了更多高级功能,例如:
  • 处理复杂的网页结构: 对于结构复杂的网页,你可以提供更多的训练样本,或者自定义特征提取器。
  • 数据清洗: 在提取数据后,你可以使用Python的字符串处理函数或者正则表达式来清洗数据。
  • 处理动态网页: 对于使用JavaScript动态加载数据的网页,你可以结合使用Selenium等工具来获取完整的HTML内容,然后再交给mlscraper处理。

总结

mlscraper 为网页数据抓取提供了一个全新的思路。 它通过机器学习的方式,将复杂的网页结构分析和选择器编写过程自动化,大大降低了网页抓取的门槛。 如果你正在寻找一个简单易用、功能强大的自动网页抓取工具,那么 mlscraper 绝对值得一试!
感兴趣的话,快去Github上了解更多信息吧!
上一篇
批量删除Github Actions运行出错的工作流
下一篇
Python 网络爬虫 cfscrape:最强悍的反爬绕过,让采集更稳定!