不写选择器的爬虫怎么写ScrapeGraphAI 自然语言抓取完整指南【免费下载链接】Scrapegraph-aiPython scraper based on AI项目地址: https://gitcode.com/GitHub_Trending/sc/Scrapegraph-ai写爬虫最耗时间的环节往往不是写代码而是对着网页一层层找 CSS 选择器页面一改版选择器就全失效得重新来一遍。有没有办法只说人话就要数据ScrapeGraphAI 就是一个基于 AI 的 Python 爬虫框架你用一句自然语言描述要抓什么它自己打开网页、清洗内容、再让大模型输出结构化的 JSON。你不需要再维护 XPath也不需要手写 BeautifulSoup 的选择器逻辑。下面按装环境 → 跑第一个爬虫 → 换模型 → 扩展场景 → 排查问题的顺序带你走完整个流程每一步都能直接复制运行。两条命令装好环境再给模型留好位置最快配置方法pip 装包加浏览器内核ScrapeGraphAI 抓取网页时依赖 Playwright 这个浏览器自动化内核可以理解成程序能操控的一个浏览器所以装库之后还要补装一次浏览器# 直接装 PyPI 发布版建议在虚拟环境里操作 pip install scrapegraphai # 抓取网页内容依赖 Playwright 内核必须补装 playwright install包要求 Python 3.10 及以上见 pyproject.toml 的 requires-python。如果你还想改源码做二次开发可以 clone 仓库gitcode 地址https://gitcode.com/GitHub_Trending/sc/Scrapegraph-ai后执行pip install -e .。免 API key 的本地模型路线不想配 API key 的话本地跑一个 Ollama 模型最省事。仓库里自带了一份 docker-compose 配置一条命令就能把 Ollama 容器拉起来# 用仓库自带配置启动本地 Ollama再拉聊天模型和向量模型 docker-compose up -d ollama pull llama3 ollama pull nomic-embed-text聊天模型负责理解页面并回答问题向量模型embedding负责把文本切成可检索的片段两者各拉一个即可。SmartScraperGraph 全流程一句 prompt 到一份 JSON四个节点各自干了什么最常用的管道类是 SmartScraperGraph它把抓取拆成四个串联的节点输入是URL 或本地文件 一句 prompt输出是 JSON 字典Fetch用 Playwright 打开页面拿到完整 HTMLParse把 HTML 清洗成纯文本去掉标签噪音RAG长页面会切成带重叠的块并做向量检索只把相关片段喂给模型规避上下文长度限制Generate Answer大模型按你的 prompt 作答输出 JSON多块的多个答案在最后一步自动合并四步跑通第一个爬虫第 1 步完成上面环境的两条安装命令。第 2 步确认ollama list里能看到 llama3或你已配好某个云端 API。第 3 步新建一个scraper.py写入最小脚本from scrapegraphai.graphs import SmartScraperGraph graph_config { llm: {model: ollama/llama3.2, format: json}, verbose: True, # 打印各节点日志方便排查 headless: False, # 调试期让浏览器窗口可见 } scraper SmartScraperGraph( prompt提取公司简介、创始人和社交媒体链接, sourcehttps://example.com/, # 也可以指向本地 HTML 文件 configgraph_config, ) print(scraper.run())第 4 步运行python scraper.py控制台先刷出各节点日志最后打印一个 JSON 字典键名对应你 prompt 里要的信息。模型怎么配本地与云端只改一个配置段本地模型model 前缀加 base_url本地模型的写法是把模型名加上ollama/前缀。如果 Ollama 不在本机比如跑在 Docker 或另一台机器上加一个base_url指过去默认值是http://localhost:11434graph_config { llm: { model: ollama/llama3, temperature: 0.0, base_url: http://localhost:11434, # 非本机 Ollama 时改这里 }, embeddings: {model: nomic-embed-text}, # 向量模型可单独指定 }云端 API其余代码一行不用动换云端模型只需替换llm段参考仓库里 OpenAI 示例 的写法# 换成云端模型只改 llm 段其余代码不动 graph_config { llm: { api_key: os.getenv(OPENAI_APIKEY), # 从环境变量读别硬编码 model: openai/gpt-4o-mini, }, verbose: True, }除 OpenAI 外Gemini、Groq、Azure、Anthropic、Hugging Face 等都有现成写法完整示例见 LLM 配置文档任何 LangChain 兼容的模型还可以直接传model_instance。单页不够用多页、搜索与文件类图怎么选内置图的输入输出速查表ScrapeGraphAI 内置了二十多个管道类完整列表见 graphs 模块常见几个的输入输出如下选图前先对号入座图类名输入典型场景SmartScraperGraphURL 或本地文件 prompt单页结构化抽取SmartScraperMultiGraph多个 URL 一句 prompt批量抓同一结构的多个页面SearchGraph只有 prompt先搜互联网再抓排名前 n 条结果SpeechGraphURL prompt抽取信息并生成音频文件ScriptCreatorGraphURL prompt产出一段可复用的 Python 抓取脚本DocumentScraperGraphPDF / HTML 等文档解析本地文档CSVScraperGraph / XMLScraperGraph / JSONScraperGraph对应格式文件表格与结构化文件抽取DepthSearchGraph起始页 prompt顺着页面内部链接深入抓取多 URL 批量抓与搜索式抓取批量抓多个页面时source直接传一个列表prompt 只写一次参考 多 URL 示例from scrapegraphai.graphs import SmartScraperMultiGraph multi SmartScraperMultiGraph( promptWho is ?, source[https://perinim.github.io/, https://perinim.github.io/cv/], # 多 URL 传列表 schemaNone, configgraph_config, ) print(multi.run())如果你连要抓哪个网址都还不知道用 SearchGraph它先按你的 prompt 搜一遍互联网再对搜索结果并行跑多个 SmartScraperGraph最后把答案合并成一份 JSONmax_results可以控制抓前 n 条结果输出为空或不对按顺序做这几个排查动作日志、浏览器窗口与代理轮换官方 FAQ 给出的排查顺序基本可以照搬先开verbose看哪个节点卡住再把headless设为FalseJS 重度渲染的页面常需要可见浏览器才能拿到内容还不行就配代理轮换 IP。仓库内置了基于 free-proxy 的免费代理池server: broker即可启用graph_config { llm: {...}, verbose: True, # 输出每个节点的日志 headless: False, # JS 动态页面关掉无头模式 loader_kwargs: { proxy: {server: broker}, # 免费代理池自动轮换 }, cache_path: cache/, # 结果缓存避免重复请求 }再进一步的话可以装pip install scrapegraphai[burr]后运行burr命令把整条管道的执行状态用图形界面画出来具体参数见 图配置文档。另外注意框架会收集匿名使用统计介意的话设置环境变量SCRAPEGRAPHAI_TELEMETRY_ENABLEDfalse即可关闭。换个模型再试一次同一个页面不同模型的效果可能差很多换模型是最便宜的变量。本地 llama 不行就试云端 gpt-4o 系列或在llm里加model_tokens声明更大的上下文长度让 RAG 节点一次塞入更多内容。从 BeautifulSoup 和 Selenium 迁过来要改什么选择器逻辑换成 prompt传统写法里soup.select(div.news h2)这类选择器直接替换成一句 prompt例如prompt提取 class 为 news 的 div 下所有 h2 标题文本。页面改版后你不需要再改代码——模型是按语义找内容而不是按固定的标签路径。浏览器等待和反爬交给内核Selenium 时代手动写的time.sleep、显式等待、driver 管理都不需要了Fetch 节点由 Playwright 托管整页加载反爬层面则交给上一节的代理轮换配置。迁移成本主要集中在 prompt 的措辞上——描述越具体输出的键名越稳定。继续深入的三个文档入口LLM 配置参考各模型 provider 的配置写法与 base_url、model_instance 用法图配置参数说明verbose、headless、代理、Burr 可视化等全部可调参数官方示例库smart_scraper、search_graph、csv/xml/json 等各类图的完整可运行示例装好环境、跑通第一个 SmartScraperGraph 之后你可以直接从示例库里挑一个最接近自己业务的图开始改这是上手最快的路径。【免费下载链接】Scrapegraph-aiPython scraper based on AI项目地址: https://gitcode.com/GitHub_Trending/sc/Scrapegraph-ai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考