“假如我当年去问顾客他们想要什么,他们肯定会告诉我:一匹更快的马” — 亨利•福特
前语
当我初入职场时,作为数据分析师的我,偶然体验到了网络爬虫(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,然后主动解析出数据,并生成爬虫代码。
列表解析
首先,咱们拜访 ai.crawlab.io。
在这个页面,能够运用示例网页 URL,也能够输入自定义的 URL。这儿咱们挑选示例中的 “豆瓣电影”,然后点击 开端解析。等待一会儿,就能够获得解析成果。
能够看到,豆瓣电影 Top 250 列表中各个字段的数据现已被提取出来,包含电影名、别号、导演、评分等。然后,咱们对比一下原网页(如下),能够看到数据是一致的。
并且,不只是数据,Crawlab AI 还将解析规矩,包含列表元素、字段、下一页的 CSS Selector,都提取了出来,如下图。
现在,咱们能够开端生成代码了,点击 生成代码,就能够弹框显示出豆瓣电影 Top 250 的爬虫代码了。
默许是 Python 代码,咱们还能够挑选 Node.js、Go 等编程言语。咱们还能够点击 下载 按钮将其下载下来。
文章解析
除了列表解析以外,Crawlab AI 还提供了文章解析功用,跟 GNE 等相同,也是能够提取文章正文的。这儿咱们试着解析一篇微信大众号文章,如下图。
然后,Crawlab AI 解析后的成果如下。
现在文章解析功用暂时不支持代码生成。未来会将这个功用加入进来。
未来方案
Crawlab AI 现在仅支持了 Web 界面,功用还比较根底。未来会加入更多有用的功用,包含批量解析、导入导出、集成 Crawlab 等。当然,现在的解析成果还达不到 100%,一些网站特别是复杂结构的网页无法完美解析,因而会进一步优化调校模型,来增强解析精准度。
总结
在本文中,咱们深入探讨了智能爬虫在行业中的需求,回顾了智能爬虫技能的最新研讨,并介绍了 Crawlab AI 这一立异的智能解析产品。尽管 Crawlab AI 现在还处于开发的初期阶段,仅提供了具有基本功用的 Playground,它展示的解析效果已然令人印象深刻。用户无需编写任何代码,只需输入网站的URL,Crawlab AI 就能 主动生成解析规矩,并提供 多种编程言语的爬虫代码。跟着技能的继续进步和功用的不断增强,咱们有理由相信,一个真实通用的智能爬虫解决方案正逐渐成为实际。
社区
假如您对笔者的文章感兴趣,能够加笔者微信 tikazyq1 并注明 “AI”,笔者会将你拉入 “Crawlab AI” 沟通群。