爬虫的都知道,最痛苦的不是获取数据,而是维护爬虫代码。
今天写的XPath,明天网站改版就失效。CSS选择器调了半天,一换页面结构全得重来。更头大的是动态渲染的页面,传统爬虫只能拿到一片空白HTML,根本抓不到真实内容。
写爬虫不难,维护爬虫才是噩梦。
一、ScrapeGraphAI 是什么
GitHub上有个叫 ScrapeGraphAI 的项目,Star数已经突破了 19k。
它的核心理念很简洁:"You Only Scrape Once"(你只需要抓取一次)。简单来说,这是一个基于大语言模型的智能爬虫框架,让你用自然语言描述需求,AI自动帮你抓取数据。
不需要写复杂的CSS选择器,不需要调试XPath,甚至不需要分析网页结构。就像这样:
prompt="提取页面上的产品名称、价格和评分"
AI会自动理解网页结构,找出你要的数据,输出规整的JSON。
二、它能做什么
2.1 自然语言驱动——说人话就能写爬虫
这是ScrapeGraphAI最大的特色。
传统爬虫要这样写:
• 分析网页DOM结构
• 找class名、id名
• 写CSS选择器或XPath
• 处理各种异常情况
用ScrapeGraphAI只需要:
• 直接说"提取文章标题和发布时间"
• 直接说"抓取表格里的所有数据"
• 直接说"获取产品图片链接"
LLM会自动理解你的意图,在页面上找到对应元素。
2.2 自适应网页结构——改版也不怕
传统爬虫最怕网站改版。页面结构一变,之前写的选择器全失效,得重新分析、重新调试。
ScrapeGraphAI的做法是让AI实时理解页面结构。不管网站怎么改版,只要内容还在,AI就能找到它。这得益于底层LLM的语义理解能力——它看的是"这个元素是什么",而不是"这个元素的class叫什么"。
2.3 五大功能模块——覆盖各种抓取场景
ScrapeGraphAI提供了五种不同的抓取模式:
模块
用途
场景
SmartScraperGraph
单页抓取
指定URL,提取结构化数据
SearchGraph
搜索抓取
从搜索引擎结果中自动抓取
SmartScraperMultiGraph
批量抓取
同时处理多个URL并合并结果
SpeechGraph
语音生成
抓取内容并转为音频(TTS)
ScriptCreatorGraph
代码生成
自动生成Python/Node.js爬虫代码
这意味着无论你是要抓单个页面、批量处理、还是从搜索结果里提取数据,都有对应的工具。
2.4 动态渲染支持——JavaScript页面也能抓
很多现代网站用React、Vue等框架渲染,传统爬虫只能拿到空HTML。
ScrapeGraphAI内置了Playwright浏览器引擎,可以:
• 执行JavaScript等待页面完全渲染
• 模拟用户点击、滚动等操作
• 抓取AJAX加载的动态内容
CSR(客户端渲染)的页面不再是难题。
2.5 支持20+种LLM——本地云端都能跑
ScrapeGraphAI不绑定特定模型,支持各种LLM:
• 云端模型:OpenAI GPT-4、Claude、Gemini、DeepSeek、Groq
• 本地模型:通过Ollama运行Llama、Nomic等
• 自定义API:兼容任何OpenAI格式的API
你可以根据需求和成本选择,想省钱用本地模型,想效果好用GPT-4。
三、部署与使用
ScrapeGraphAI的安装非常简单:
pip install scrapegraphai
playwright install
第二行是安装浏览器引擎,用于处理动态页面。
基础使用示例
from scrapegraphai.graphs import SmartScraperGraph
graph_config = {
"llm": {
"model": "ollama/llama3.2",
"model_tokens": 8192
}
}
smart_scraper = SmartScraperGraph(
prompt="提取公司描述和创始人信息",
source="https://example.com",
config=graph_config
)
result = smart_scraper.run()
print(result)
使用OpenAI模型
graph_config = {
"llm": {
"api_key": "your-openai-key",
"model": "gpt-4",
}
}
从搜索结果抓取
from scrapegraphai.graphs import SearchGraph
search_graph = SearchGraph(
prompt="提取威尼斯传统美食名称",
config=graph_config
)
result = search_graph.run()
提示:使用云端LLM时注意Token消耗,建议先用本地模型测试提示词效果。
四、适合谁用
• 数据分析师:需要定期抓取竞品数据、行业报告
• 爬虫开发者:厌倦了维护XPath和CSS选择器
• 产品经理:需要快速验证数据源可行性
• 研究人员:抓取学术论文、新闻资讯
• 电商运营:监控竞品价格、库存信息
• AI应用开发者:构建需要实时数据的RAG应用
五、写在最后
ScrapeGraphAI代表了爬虫技术的新方向:**从"精确描述位置"转向"描述想要什么"**。
相比传统爬虫几十上百行的代码,这个项目提供了一种更现代的思路。如果你经常需要抓取网页数据,不妨试试看。花几分钟配置好环境,可能会改变你对爬虫的认知。
开源地址:https://github.com/ScrapeGraphAI/Scrapegraph-ai
官网:https://scrapegraphai.com/
觉得有用的话,点个赞、收藏一下,也欢迎转发给需要的朋友。
有什么想聊的,评论区见。
关注「妙想栈」,每天带你发现GitHub上最值得关注的AI开源项目。
原文来源:微信公众号 | 转载于 Wechat Mediapress
评论
发表评论