Scrapegraph-ai:3步用自然语言从网页提取结构化数据

📅 2026/8/22 23:23:50
Scrapegraph-ai:3步用自然语言从网页提取结构化数据
Scrapegraph-ai3步用自然语言从网页提取结构化数据【免费下载链接】Scrapegraph-aiPython scraper based on AI项目地址: https://gitcode.com/GitHub_Trending/sc/Scrapegraph-aiScrapegraph-ai 是一个 Python AI 爬虫库核心能力是用自然语言网页抓取你只需一句话说明想提取什么它通过 LLM 加图-节点工作流完成页面获取、解析和结构化输出。适合需要抓取网页或本地文件数据、但不想维护 CSS 选择器/XPath 的开发者。项目定位和手写选择器的爬虫有什么不同传统爬虫靠 BeautifulSoup、Selenium 这类工具选择器要自己写页面一改就得跟着改Scrapegraph-ai 把理解页面这一步交给大模型你只负责描述目标。对比维度传统爬虫BeautifulSoup/SeleniumScrapegraph-ai定位内容手写 CSS 选择器 / XPath一句话 prompt模型自动定位页面结构变化需要重写解析代码多数情况下只需换 prompt动态页面自行处理浏览器、等待、JS 渲染内置 Playwrightheadless: False时可直接看到浏览器取数过程输入来源通常只处理网页网页 本地 XML / HTML / JSON / CSV / Markdown输出原始 HTML 或文本结构化 JSON额外成本无需要一个 LLMOllama 本地或云端 API一句话总结卖点用一句话描述替代选择器输出直接是可用的 JSON。快速上手3步跑通第一个 AI 爬虫第1步安装库和浏览器pip install scrapegraphai playwright install # 抓取网页依赖 Playwright 渲染预期结果安装无报错Playwright 浏览器内核下载完成建议放在虚拟环境里装避免依赖冲突。第2步准备大模型ollama pull llama3.2 ollama pull nomic-embed-text预期结果本地模型下载完成全程不需要 API key。如果打算用 OpenAI、Gemini 等云端模型跳过这步在配置里填 key 即可。第3步运行最小脚本新建scraper.pyfrom scrapegraphai.graphs import SmartScraperGraph graph_config { llm: {model: ollama/llama3.2, format: json}, verbose: True, # 在控制台打印执行细节方便观察 } g SmartScraperGraph( prompt提取公司简介和创始人, # 用一句话描述提取目标 sourcehttps://scrapegraphai.com/, configgraph_config, ) print(g.run())预期结果终端打印一段 JSON如{description: ..., founders: [{name: ..., ...}]}字段名由你的 prompt 决定。三条最常用的爬虫流水线单页抓取SmartScraperGraph一句话功能给一个 URL 加一句 prompt返回该页面的结构化 JSON是库中最常用的流水线。上面第3步已经是它的完整用法。切换模型时只改llm配置# 换成 OpenAI只改 llm 这一段 graph_config { llm: {api_key: YOUR_KEY, model: openai/gpt-4o-mini}, headless: False, # 设为 False 可以看到浏览器打开页面取数 }使用效果run()返回 dict例如官网示例返回了description、founders含姓名/职位/主页、social_media_links三组字段。搜索式多页抓取SearchGraph一句话功能按 prompt 走搜索引擎抓取前 n 条结果并汇总适合信息分散在多个页面的问题。from scrapegraphai.graphs import SearchGraph g SearchGraph( prompt列出 Chioggia 的著名菜品, config{ llm: {api_key: YOUR_KEY, model: openai/gpt-4o}, max_results: 2, # 取搜索结果前2条并分别提取 }, ) print(g.run())使用效果控制台输出一条综合了多个搜索结果的答案max_results控制抓取几条。网页转语音SpeechGraph一句话功能抓取页面内容、生成总结再合成 mp3 音频文件。from scrapegraphai.graphs import SpeechGraph g SpeechGraph( prompt总结页面上的项目, sourcehttps://example.com/projects/, config{ llm: {api_key: YOUR_KEY, model: openai/gpt-4o}, tts_model: {api_key: YOUR_KEY, model: tts-1, voice: alloy}, output_path: summary.mp3, # 音频保存路径 }, ) g.run()使用效果指定路径下生成summary.mp3可直接用于播客、简报场景。库中还有一批同思路的流水线都定义在 scrapegraphai/graphs/JSONScraperGraph/CSVScraperGraph/XMLScraperGraph本地文件提取、SmartScraperMultiGraph多个 URL 并行、ScriptCreatorGraph生成可复用的 Python 抓取脚本、DocumentScraperGraph等每种都能在 examples/ 里找到可直接运行的示例。三个真实场景从输入到输出场景输入输出电商价格监测商品列表页 URL 提取每件商品的名称、价格、是否有货JSON 数组[{name: ..., price: 199.0, in_stock: true}]配合convert_to_csv落盘本地数据整理books.json文件内容 列出所有书名、作者、类型结构化 JSON 列表见 examples/json_scraper_graph/竞品资讯聚合主题 prompt max_results: 3SearchGraph 汇总前 3 条搜索结果可直接喂给日报生成流程常见报错自行修复症状运行时报浏览器相关错误、页面抓取失败。原因没装 Playwright 浏览器内核。解法执行playwright installSmartScraperGraph 取网页内容依赖它。症状提示 API key not found 或请求 401。原因用了云端模型OpenAI、Gemini 等但没配 key。解法在llm配置里补api_key或换本地模型model: ollama/llama3.2需先安装 OllamaOllama 不在本机时可用base_url指定地址见 docs/source/scrapers/llm.rst。症状页面抓取超时或卡住。原因抓取节点默认 30 秒超时慢页面或重 JS 页面容易触顶。解法在FetchNode的node_config中自定义timeout说明见 docs/timeout_configuration.md。症状内容被反爬拦截、返回为空。原因目标站点识别了请求。解法在loader_kwargs里配置代理官方给了 free-proxy 免费代理和自有代理两种写法见 docs/source/scrapers/graph_config.rst。症状希望关闭匿名使用统计。解法设置环境变量SCRAPEGRAPHAI_TELEMETRY_ENABLEDfalse即可。接下来可以看什么把上面的最小示例跑通后Scrapegraph-ai 的用法基本就通了——换一条流水线、换一个模型解决不同来源的抓取问题。中文文档docs/chinese.md图配置项全表verbose、headless、cache_path 等docs/source/scrapers/graph_config.rst支持的 LLM 与本地模型接法docs/source/scrapers/llm.rst每种流水线的可运行示例examples/【免费下载链接】Scrapegraph-aiPython scraper based on AI项目地址: https://gitcode.com/GitHub_Trending/sc/Scrapegraph-ai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考