尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Scrapegraph-ai:一句话让网页变结构化数据

Scrapegraph-ai:一句话让网页变结构化数据 Scrapegraph-ai一句话让网页变结构化数据【免费下载链接】Scrapegraph-aiPython scraper based on AI项目地址: https://gitcode.com/GitHub_Trending/sc/Scrapegraph-ai做竞品调研时你大概也遇到过这种活把十几家公司的官网描述、创始人名单、社媒入口逐一抄进表格。手工复制太慢写选择器又烦——每家页面结构都不一样div.news h2这种 XPath 维护起来心累。Scrapegraph-ai 是一个基于 LLM 和图Graph逻辑的 Python 网页抓取库你用一句自然语言告诉它要什么它直接返回结构化 JSON页面获取、清洗、提问、作答都在内部完成。项目定位AI 驱动的 Python 网页抓取库一句话概括Scrapegraph-ai 把「抓取网页 → 清洗内容 → 让 LLM 按你的提问作答」封装成一条条可插拔的流水线输入是一个 prompt 和一个 source网址或本地文件路径输出是一个字典。它适合页面结构不稳定或经常变、需要快速验证数据能提取出来、目标页面数量不多个位数到几十个的场景包括 HTML、JSON、XML、Markdown 等本地文档的解析。它不适合成千上万页面的大规模采集。每一次抓取都要真实调用 LLM有 token 成本和延迟批量跑既慢又贵。这类场景更适合先用它的 ScriptCreatorGraph 生成一段固定脚本再脱离 LLM 批量执行。安装与第一次运行 Scrapegraph-ai环境上只需要 Python 3.10项目pyproject.toml声明的是3.10,4.0。官方建议在虚拟环境里装避免依赖冲突。pip install scrapegraphai playwright install # 抓取网页内容必需安装浏览器内核 ollama pull llama3.2 # 拉取一个本地模型零 API 成本如果你要改源码而不是装发布版可以克隆仓库后pip install -e .git clone https://gitcode.com/GitHub_Trending/sc/Scrapegraph-ai。装好后用最小示例跑通第一个可见结果。下面这段直接就能执行模型走 Ollama 本地部署不需要任何 API keyfrom scrapegraphai.graphs import SmartScraperGraph graph_config { llm: {model: ollama/llama3.2, format: json}, # 本地模型JSON 输出 verbose: True, # 控制台打印调试信息 headless: True, # 隐藏浏览器窗口 } graph SmartScraperGraph( prompt提取公司描述、创始人和社交媒体链接, sourcehttps://scrapegraphai.com/, configgraph_config, ) print(graph.run())run()返回一个字典键由 LLM 按 prompt 语义生成典型结果是description、founders姓名/职位/LinkedIn 的列表、social_media_links这类字段。看到输出后后面再谈原理。从 URL 到 JSON数据在图里怎么流动以最常用的 SmartScraperGraph 为例run()内部按固定链路串起三类节点全部定义在scrapegraphai/nodes/目录FetchNode用 Playwright 打开页面取回 HTML。source不以http开头时它改为读取本地文件这就是「同一个图也能解析本地文档」的原因。ParseNode剥掉 HTML 标签按model_tokens把长文切成 LLM 能装下的片段。GenerateAnswerNode把你的 prompt 和页面片段一起交给 LLM产出最终答案。format: json让它输出字典而不是自由文本。配置项会改变图的形状reattempt: True时插入一个 ConditionalNode答案是空或NA就自动再问一次 LLM 重新生成html_mode决定 ParseNode 是否保留原始 HTML 标签reasoning再前置一个推理节点。换模型也只需改llm段——本地模型写ollama/前缀Ollama 默认地址http://localhost:11434可用base_url覆盖云端模型加一行api_key即可比如openai/gpt-4o-mini。完整用例提取公司创始人并校验开销把任务具体化从公司官网提取所有创始人并且要能回答「这次抓取烧了多少 token」。锁字段用 Pydantic 模型校验用库自带的执行信息工具导入只有两行from pydantic import BaseModel, Field和from scrapegraphai.utils import prettify_exec_info。class FounderInfo(BaseModel): name: str Field(description创始人姓名) role: str Field(description职位) linkedin: str Field(descriptionLinkedIn 链接) graph SmartScraperGraph( prompt列出该公司的创始人, sourcehttps://scrapegraphai.com/, schemaFounderInfo, # 用 Pydantic 模型锁定输出字段 configgraph_config, ) graph.run() print(prettify_exec_info(graph.get_execution_info())) # 逐节点 Token/成本/耗时schema参数把输出钉死在FounderInfo的三个字段上LLM 不会再自由发挥键名。prettify_exec_info打印的表格里有每个节点的 Token 数、美元成本和耗时调 prompt 或换模型时这是你判断「改动值不值」的依据。多个页面共用同一个 prompt 时换成SmartScraperMultiGraphsource传列表即可LLM 调用并行执行from scrapegraphai.graphs import SmartScraperMultiGraph graph SmartScraperMultiGraph( prompt总结这个页面的主营业务, source[https://a.example.com/, https://b.example.com/], configgraph_config, ) print(graph.run())与传统爬虫方案的对比维度Scrapegraph-ai传统选择器BeautifulSoup 等Selenium 自动化页面结构变化基本不敏感prompt 不变即可选择器全部重写定位器需维护动态渲染页面Playwright 直接等待渲染完成拿到的可能只是空壳 HTML支持输出形态自然语言驱动的 JSON 字典需自己组装结构需自己组装结构单页成本每次调用 LLM有 token 费用和秒级延迟近乎为零近乎为零千页级批量不适合可先生成脚本再批量适合适合但慢判断标准很简单页面少、结构乱、要快用 Scrapegraph-ai页面多、结构稳定回到传统方案或者让它帮你生成脚本。常见问题 FAQ必须买 API key 吗不必须。装好 Ollama、ollama pull一个模型后就能全本地运行。想用云端模型OpenAI、Groq、Azure、Gemini 等在llm配置里加api_key一行即可。提取结果不准确或为空怎么办配置里加reattempt: True空答案会自动重试一次用additional_info往默认 prompt 里补充背景用schema锁定字段。这三个是官方配置文档里列出的常用开关。为什么运行时会闪出一个浏览器窗口headless: False时 Playwright 会打开浏览器、取完 HTML 立刻关闭方便你确认抓的是哪个页面。生产环境设headless: True即可。能处理本地文件而不是网址吗可以。source不以http开头就按本地路径处理.html、.md、.json、.xml文件都可以直接喂进去仓库里各格式都有现成示例。怎么控制抓取行为代理、缓存目录、附加上下文都走configloader_kwargs.proxy配代理支持自动轮换或自有代理服务器cache_path设置缓存目录additional_info补充说明。完整清单见下方配置文档。进阶方向与资源往上走的路大致有三条用 SearchGraph 从搜索引擎前 n 条结果里批量提取max_results控制条数用 ScriptCreatorGraph 让 LLM 写一段固定 Python 脚本之后脱离模型批量跑装scrapegraphai[burr]后在配置里加burr_kwargs用 Burr 的 Web 界面实时观察图执行状态。仓库内的入口都给了相对路径不用满世界找各流水线示例examples/按 ollama / openai 分目录配置项详解docs/source/scrapers/graph_config.rst支持的模型清单docs/source/scrapers/llm.rst所有图的源码scrapegraphai/graphs/另提醒一句库默认收集匿名遥测介意可以在环境变量里设SCRAPEGRAPHAI_TELEMETRY_ENABLEDfalse关闭。把第一个页面的 JSON 跑出来剩下的只是换 prompt 和换图的事。【免费下载链接】Scrapegraph-aiPython scraper based on AI项目地址: https://gitcode.com/GitHub_Trending/sc/Scrapegraph-ai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表