“假如我当年去问顾客他们想要什么,他们肯定会告诉我:一匹更快的马” — 亨利•福特

前语

当我初入职场时,作为数据分析师的我,偶然体验到了网络爬虫(Web Crawler)主动化提取网页数据的才能,自此我一直对这个神奇的技能充溢好奇。跟着后来我不断研讨爬虫技能,逐渐了解到网络爬虫的核心技能,其中就包含网页解析(Parsing),即经过分析网页 HTML 结构而构建依据 XPath 或 CSS Selector 数据提取规矩的进程。这个进程长期以来都需要人工介入,尽管对于爬虫工程师来说相对简略,但假如需要大规模抓取,这个进程是非常消耗时刻的,并且跟着网页结构变化会添加爬虫保护本钱。本篇文章将介绍我开发的依据大言语模型(LLM) 的智能爬虫产品Crawlab AI。尽管它还处于前期开发阶段,但现已展现出强壮的潜力,有望让数据从业者轻松获取数据。

相关工作

作为爬虫管理渠道 Crawlab 的创始人,一直都热衷于让数据获取变得简略和轻松。跟数据从业者不断沟通,我意识到智能爬虫(或通用爬虫)的大量需求,即不用人工编写解析规矩就能够抓取任何网站的方针数据。当然,也不止我一个人在研讨和企图解决这个问题:2020年1月,青南大佬发布了依据标点密度的通用文章解析库 GeneralNewsExtractor,能够 4行代码完成通用新闻爬虫;2020年7月,崔庆才大佬发布了 GerapyAutoExtractor,依据 SVM 算法完成了列表页数据抓取;2023年4月,我经过高维度向量聚类算法,开发了 Webspot,相同能够主动提取列表页。这些开源软件的首要问题在于,识别的精准度与人工编写的爬虫规矩有必定差距。

此外,商业爬虫软件 Diffbot八爪鱼 经过自研的机器学习算法,也完成了部分通用数据抓取的功用。但惋惜的是它们的运用本钱相对较高。例如,Diffbot 的最低套餐就需要每月付出 299 美元的订阅费。

跟着 2023 年大言语模型(LLM)的大爆发,智能爬虫研讨好像又找到新方向。ChatGPT 接入 Bing Search 之后,咱们能够让其直接拜访某个 URL 并依据内容发问。Builder.io 发布的 GPT-Crawler 能够全站抓取方针网站并接入 GPTs。青南运用提示工程(Prompt Engineering)在 ChatGPT 中完成了通用爬虫,参阅《一日一技:主动提取恣意信息的通用爬虫》

Crawlab AI

依据前人关于 LLM 在数据抓取方面的研讨成果,我突然意识到 LLM 在或许不只擅长处理文本,还能够处理更多非结构化数据,包含 HTML。于是,我试着运用 LLM 去解析网页 HTML,并依据要求提取出相应的数据,发现效果出其不意的好。LLM 不只能准确提取出网页中的方针数据,并且能够将方针数据地点的节点路径经过 CSS Selector 提供出来。这样就能够让 LLM 依据 HTML 生成相应的提取规矩,然后终究生成对应的爬虫代码。因而,运用 LLM 生成爬虫代码进行抓取的主意应运而生,我也依据这个思路发布了 Crawlab AI。现在 Crawlab AI 处于前期开发阶段,只提供一个网页让用户输入待解析网页的 URL,然后主动解析出数据,并生成爬虫代码。

Crawlab AI: 凭借大言语模型 (LLM) 打造智能爬虫

列表解析

首先,咱们拜访 ai.crawlab.io

Crawlab AI: 凭借大言语模型 (LLM) 打造智能爬虫

在这个页面,能够运用示例网页 URL,也能够输入自定义的 URL。这儿咱们挑选示例中的 “豆瓣电影”,然后点击 开端解析。等待一会儿,就能够获得解析成果。

Crawlab AI: 凭借大言语模型 (LLM) 打造智能爬虫

能够看到,豆瓣电影 Top 250 列表中各个字段的数据现已被提取出来,包含电影名、别号、导演、评分等。然后,咱们对比一下原网页(如下),能够看到数据是一致的。

Crawlab AI: 凭借大言语模型 (LLM) 打造智能爬虫

并且,不只是数据,Crawlab AI 还将解析规矩,包含列表元素、字段、下一页的 CSS Selector,都提取了出来,如下图。

Crawlab AI: 凭借大言语模型 (LLM) 打造智能爬虫

现在,咱们能够开端生成代码了,点击 生成代码,就能够弹框显示出豆瓣电影 Top 250 的爬虫代码了。

Crawlab AI: 凭借大言语模型 (LLM) 打造智能爬虫

默许是 Python 代码,咱们还能够挑选 Node.js、Go 等编程言语。咱们还能够点击 下载 按钮将其下载下来。

Crawlab AI: 凭借大言语模型 (LLM) 打造智能爬虫

文章解析

除了列表解析以外,Crawlab AI 还提供了文章解析功用,跟 GNE 等相同,也是能够提取文章正文的。这儿咱们试着解析一篇微信大众号文章,如下图。

Crawlab AI: 凭借大言语模型 (LLM) 打造智能爬虫

然后,Crawlab AI 解析后的成果如下。

Crawlab AI: 凭借大言语模型 (LLM) 打造智能爬虫

现在文章解析功用暂时不支持代码生成。未来会将这个功用加入进来。

未来方案

Crawlab AI 现在仅支持了 Web 界面,功用还比较根底。未来会加入更多有用的功用,包含批量解析、导入导出、集成 Crawlab 等。当然,现在的解析成果还达不到 100%,一些网站特别是复杂结构的网页无法完美解析,因而会进一步优化调校模型,来增强解析精准度。

总结

在本文中,咱们深入探讨了智能爬虫在行业中的需求,回顾了智能爬虫技能的最新研讨,并介绍了 Crawlab AI 这一立异的智能解析产品。尽管 Crawlab AI 现在还处于开发的初期阶段,仅提供了具有基本功用的 Playground,它展示的解析效果已然令人印象深刻。用户无需编写任何代码,只需输入网站的URL,Crawlab AI 就能 主动生成解析规矩,并提供 多种编程言语的爬虫代码。跟着技能的继续进步和功用的不断增强,咱们有理由相信,一个真实通用的智能爬虫解决方案正逐渐成为实际。

社区

假如您对笔者的文章感兴趣,能够加笔者微信 tikazyq1 并注明 “AI”,笔者会将你拉入 “Crawlab AI” 沟通群。