尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Crawl4AI 教程:3 步搞定免费 AI 友好型网页爬虫

Crawl4AI 教程:3 步搞定免费 AI 友好型网页爬虫 Crawl4AI 教程3 步搞定免费 AI 友好型网页爬虫【免费下载链接】crawl4ai Crawl4AI: Open-source LLM Friendly Web Crawler Scraper. Dont be shy, join here: https://discord.gg/jP8KfhDhyN项目地址: https://gitcode.com/GitHub_Trending/craw/crawl4ai把网页喂给 RAG 之前你总得先处理 HTML去掉导航、广告和排版噪音再转成模型能读的文本。Crawl4AI 就是一个免费的开源网页爬虫工具它在真实浏览器里渲染页面直接输出干净的 Markdown三行代码就能跑通。工具定位Crawl4AI 解决什么问题如果你用过 requests 加 BeautifulSoup 抓网页下面几个问题应该很熟悉。Crawl4AI 的思路不是再造一个爬虫而是把网页到 AI 数据这条链路标准化动态页面它基于 Playwright 驱动真实浏览器JavaScript 渲染、懒加载内容都能拿到而传统 requests 方案只能拿到原始 HTML 骨架。输出格式抓完直接得到结构化 Markdown导航、页脚、脚本被自动清理LLM 可以直接消费不用自己写清洗规则。结构化提取内置 LLM 提取策略用 Pydantic 模型定义字段返回的是 JSON 而不是待解析的文本。反检测支持无头指纹伪装和代理配置应对基础的反爬拦截。服务化官方 Docker 镜像自带 API 和监控面板适合生产环境常驻。快速上手三步完成第一次抓取一条命令完成安装安装分两步装包然后执行 setup 初始化浏览器依赖。pip install -U crawl4ai crawl4ai-setupcrawl4ai-setup会下载 Chromium 内核首次执行需要几分钟装完可以跑crawl4ai-doctor自检环境。跑通首个爬取下面这段是最小的完整示例用异步上下文管理器启动爬虫并抓取 example.com。import asyncio from crawl4ai import AsyncWebCrawler async def main(): async with AsyncWebCrawler() as crawler: result await crawler.arun(urlhttps://example.com) print(成功:, result.success) asyncio.run(main())运行后result.success输出True说明页面抓取完成。拿到 Markdown 输出arun返回的CrawlResult对象里markdown字段就是干净的页面文本。md result.markdown print(md[:300]) # 前300个字符你会看到带标题层级的纯文本没有div、没有脚本残留。Crawl4AI 网页爬虫的核心价值就在这里拿到手的文本可以直接进向量库或提示词。核心能力实战精准圈选页面内容CSS 选择器整页抓取太吵的时候用css_selector指定只取哪个区域选择器写法和普通前端 CSS 一致。from crawl4ai import AsyncWebCrawler, CrawlerRunConfig, CacheMode config CrawlerRunConfig( cache_modeCacheMode.BYPASS, css_selector.post-content ) async with AsyncWebCrawler() as crawler: result await crawler.arun( urlhttps://en.wikipedia.org/wiki/World_Wide_Web, configconfig ) print(result.markdown[:500])预期效果输出的 Markdown 只包含匹配元素的内部内容页头和侧边栏不再出现。LLM 结构化提取Pydantic 模型配置当页面里没有规整的表格而是散落在段落里的信息可以让 LLM 按你定义的 Pydantic 模型抽取返回解析好的 JSON。import os from pydantic import BaseModel, Field from crawl4ai import AsyncWebCrawler, CrawlerRunConfig, LLMExtractionStrategy, LLMConfig class Recipe(BaseModel): name: str Field(description菜名) time: str Field(description烹饪时间) strategy LLMExtractionStrategy( llm_configLLMConfig(provideropenai/gpt-4o-mini, api_tokenos.getenv(OPENAI_API_KEY)), schemaRecipe.model_json_schema(), instruction从页面中提取菜名和烹饪时间 ) config CrawlerRunConfig(extraction_strategystrategy)配置里只需要三样模型 provider、字段 schema、一句提取指令。跑完后result.extracted_content就是符合模型的 JSON 列表。多页深度爬取BFS 策略配置抓一个入口页容易沿链接抓一个栏目就麻烦了。深度爬取策略封装了链接发现、去重和过滤BFS 会逐层向外扩展。from crawl4ai import AsyncWebCrawler, CrawlerRunConfig from crawl4ai.deep_crawling import BFSDeepCrawlStrategy strategy BFSDeepCrawlStrategy(max_depth2, max_pages20) config CrawlerRunConfig(deep_crawl_strategystrategy) async with AsyncWebCrawler() as crawler: results await crawler.arun( urlhttps://en.wikipedia.org/wiki/Python_(programming_language), configconfig ) print(共抓取, len(results), 个页面)max_depth控制向外扩展层数max_pages防止失控。需要只看同域链接时可以在策略里加SameDomainFilter过滤链。反检测与代理浏览器配置部分站点会拦截默认浏览器指纹或机房 IP。代理和反检测参数放在BrowserConfig里与单次抓取的CrawlerRunConfig分开管理。from crawl4ai import BrowserConfig, ProxyConfig browser_config BrowserConfig( headlessTrue, proxy_configProxyConfig( serverhttp://proxy.example.com:8080, usernameuser, passwordpass ) ) async with AsyncWebCrawler(browser_configbrowser_config) as crawler: result await crawler.arun(urlhttps://example.com)预期效果所有请求经由代理出口配合无头模式运行基础 IP 封禁和指纹识别场景下成功率明显提升。生产实践Docker 部署与性能调优Docker 镜像自带抓取 API、任务监控面板两条命令即可起服务。docker pull unclecode/crawl4ai:latest docker run -d -p 11235:11235 --name crawl4ai --shm-size1g unclecode/crawl4ai:latest起来后访问http://localhost:11235监控面板和 API 文档在同一入口适合用--shm-size1g给浏览器共享内存留足空间。几个调优要点并发控制AsyncWebCrawler默认有并发上限批量任务用arun_many(urls[...])一次提交由内置调度器按内存压力自适应排队别自己开大量独立实例。重试与超时在CrawlerRunConfig里设置timeout毫秒和max_retries对不稳定的站点先重试再降级到 HTTP 直连策略。缓存策略重复爬取同一批 URL 时保持CacheMode.ENABLED并调大cache_ttl命中缓存的请求基本零开销调试期用CacheMode.BYPASS避免读到旧数据。资源监控生产环境挂CrawlerMonitor观察浏览器上下文数量和内存占用上下文数异常增长时优先检查是否有页面泄漏。内存收敛不需要截图和媒体就别开screenshotFalse、extract_mediaFalse能显著降低单次抓取内存峰值。避坑指南常见问题Q安装后浏览器报错或白屏手动补齐 Playwright 依赖python -m playwright install --with-deps chromium装完重跑crawl4ai-doctor确认环境状态。QMarkdown 里噪音太多CrawlerRunConfig传excluded_tags[nav, footer, aside]排除指定标签 仍不理想就换内容过滤策略如PruningContentFilter按密度剪枝。Q同一批 URL 反复抓太慢开启缓存cache_modeCacheMode.ENABLED并设置cache_ttl3600。 注意调试期间切回BYPASS否则改动页面后拿到的还是旧内容。Q目标站点返回 403 或人机验证换use_undetected无头模式并挂代理magicTrue可让工具自动选择更稳的组合 验证类站点建议直接接入第三方打码服务不要硬刚。写在最后Crawl4AI 把渲染—清洗—转换这三件脏活打包成了一次arun调用新手从 Markdown 输出起步进阶再上 LLM 提取和深度爬取路径是顺的。下一步建议把上面第一个示例里的example.com换成你手头真正需要的页面跑通后接着试 CSS 选择器这一节。快速开始文档docs/md_v2/core/quickstart.md参数参考docs/md_v2/api/parameters.mdLLM 提取示例docs/examples/llm_extraction_openai_pricing.py快速上手示例docs/examples/quickstart.py核心源码crawl4ai/async_webcrawler.py、crawl4ai/deep_crawling/Docker 部署说明deploy/docker/README.md【免费下载链接】crawl4ai Crawl4AI: Open-source LLM Friendly Web Crawler Scraper. Dont be shy, join here: https://discord.gg/jP8KfhDhyN项目地址: https://gitcode.com/GitHub_Trending/craw/crawl4ai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表