
Crawl4AI 网页转 Markdown 爬虫从安装到跑通三个典型场景只要 5 分钟【免费下载链接】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当你需要把网页变成能直接喂给大模型的 Markdown 时Crawl4AI 网页转 Markdown 爬虫值得先看一眼。它把打开页面、等渲染、取正文、清洗、转格式这一串活打包进一个 Python 接口你只管给 URL它把干净的 Markdown 和结构化结果还给你。为什么选 Crawl4AI 而不是常规爬虫它内置真实浏览器内核能等 JavaScript 渲染完再取 HTML普通 requests 抓不到动态内容它抓得到。输出天然是给 LLM 用的标题、表格、代码块都转成规整 Markdown省掉你手写清洗脚本。同一套接口从单页、批量到整站深爬都覆盖不用在 Scrapy、Selenium、自研脚本之间来回切。会话、代理、缓存、反检测都是配置项不用自己拼。Crawl4AI 安装与初始化先装包并装好浏览器内核pip install -U crawl4ai crawl4ai-setup crawl4ai-doctor最小可运行示例import asyncio from crawl4ai import AsyncWebCrawler async def main(): async with AsyncWebCrawler() as crawler: result await crawler.arun(urlhttps://www.nbcnews.com/business) print(result.markdown) asyncio.run(main())跑完你会在终端看到该页面被清洗成带标题层级的 Markdown广告、导航基本被剥掉result里还有cleaned_html、media、links、metadata等字段可直接取用。浏览器报错时手动装内核python -m playwright install --with-deps chromium。三个典型场景Crawl4AI 如何只抓正文如果你的页面正文和导航、页脚混在一起用一个 CSS 选择器把范围框住即可。from crawl4ai import CrawlerRunConfig config CrawlerRunConfig( css_selectorarticle, # 只取正文容器 excluded_tags[nav, footer, aside], ) result await crawler.arun(urlhttps://techcrunch.com, configconfig)效果result.markdown只剩article内的内容体积和 token 消耗都明显下降。结构化提取让 LLM 出结构化数据当页面没有稳定的 DOM 结构、但字段语义清楚时交给 LLM 按 schema 抽。from crawl4ai import LLMConfig, LLMExtractionStrategy config CrawlerRunConfig( extraction_strategyLLMExtractionStrategy( llm_configLLMConfig(provideropenai/gpt-4o-mini, api_tokenos.getenv(OPENAI_API_KEY)), schemaProduct.schema(), instruction提取每个产品的名称、价格、描述, ) )效果result.extracted_content直接是符合Product模型的 JSON 列表省去手写解析。整站深爬发现并爬取一整片 URL要抓的不只是单页而是从入口页开始把同域内容挖出来就挂一个深爬策略。from crawl4ai import BFSDeepCrawlStrategy config CrawlerRunConfig( deep_crawl_strategyBFSDeepCrawlStrategy( max_depth3, max_pages20, include_externalFalse ) ) result await crawler.arun(urlhttps://docs.crawl4ai.com, configconfig)效果从入口逐层发现链接并按max_depth/max_pages受控展开避免失控。进阶能力速览能力什么情况下用它自适应爬取AdaptiveCrawler反复抓同类站点想让它自己学结构、按查询取数时用内容过滤BM25ContentFilter/PruningContentFilter正文被大量导航、广告干扰想自动留相关块时用代理与反检测ProxyConfig/use_undetected_browser目标站点有反爬、或需要轮换出口 IP 时用预取模式prefetchTrueURL 发现太慢想提速数倍时用崩溃恢复resume_state长时间深爬中途挂了、想断点续爬时用生产环境工程化建议并发控制批量用await crawler.arun_many(urls, config)默认走MemoryAdaptiveDispatcher可用semaphore_count10限制同时开页面数。失败重试CrawlerRunConfig(max_retries3, timeout30000)配合异步调度器做超时兜底。缓存省配额cache_modeCacheMode.ENABLED默认是BYPASS不走缓存重复抓同一批 URL 时能显著省时间和带宽。降资源占用headlessTrue、按需关掉screenshot与媒体提取内存和磁盘都会小一圈。避坑清单现象装完报浏览器内核缺失或崩溃原因没装 Playwright 对应的 chromium 及系统依赖 解法跑python -m playwright install --with-deps chromium再crawl4ai-doctor复核现象抓回来的内容明显不全原因页面靠 JS 渲染默认返回时机太早 解法CrawlerRunConfig(delay_before_return_html2)或配wait_for等待关键元素现象正文里混入导航、广告、侧栏原因默认清洗力度不够选择器没限定 解法excluded_tags[nav,footer,aside]加PruningContentFilter进一步剪枝现象重复抓同一批页面浪费内存与配额原因cache_mode默认BYPASS每次都在真实请求 解法改成CacheMode.ENABLED并设合适的cache_ttl收尾Crawl4AI 的核心价值是一个接口同时管好渲染、清洗、抽取、深爬让你把精力放回数据本身。建议顺着官方核心文档和示例代码往下读再直接动手把上面只抓正文里的css_selector换成你自己站点的正文选择器跑一次看看result.markdown的效果。核心与 API 文档docs/md_v2/core/可直接跑的示例docs/examples/深度爬取策略源码crawl4ai/deep_crawling/【免费下载链接】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),仅供参考