Crawl4AI 快速上手指南15 分钟把网页变成 LLM 可用的 Markdown【免费下载链接】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想让网页内容喂给 LLM却被广告栏、Cookie 弹窗和 HTML 杂音卡住Crawl4AI 是一个开源爬虫它把网页转成 LLM 友好的 Markdown。这篇文章把「装好环境 → 跑通首个爬取 → 调通常用参数」拆成 6 个小任务每一节读结束手可动手全程约 15 分钟。读完你能做到跑通最小爬虫示例把一个真实页面输出成 Markdown调对 3 个最高频参数缓存模式、CSS 选择器、动态页面等待用排障速查表定位 6 类典型问题三条命令备妥环境先确认 Python 版本在 3.9 以上运行python --version看一眼即可。接着按你的角色执行安装命令一张表讲完所有分支你的角色要执行的命令日常开发 / 写脚本多数人pip install -U crawl4ai随后crawl4ai-setup需要验证环境健康crawl4ai-doctor要改源码的贡献者git clone https://gitcode.com/GitHub_Trending/craw/crawl4ai进目录执行pip install -e .[all]注意crawl4ai-setup会负责下载浏览器依赖。如果装完仍报浏览器相关错误手动执行一次python -m playwright install --with-deps chromium即可。装过torch或all可选包的话再跑一次crawl4ai-download-models预载模型。五行代码跑通第一个 Crawl4AI 爬虫整个库的入口就一个AsyncWebCrawler.arun()。新建一个文件写入下面代码并运行import asyncio from crawl4ai import AsyncWebCrawler async def main(): async with AsyncWebCrawler() as crawler: # 默认无头 Chromium result await crawler.arun( urlhttps://en.wikipedia.org/wiki/Web_scraping ) print(result.markdown[:500]) # 打印前 500 字符的 Markdown if __name__ __main__: asyncio.run(main())运行后你会看到页面以标题层级、段落、列表的形式输出成干净的 Markdown而不是一堆原始 HTML。如果不想写代码也可以在命令行直接爬crwl https://www.nbcnews.com/business -o markdown效果与上面代码相同。常用三旋钮 所有行为都收在两个配置对象里BrowserConfig管浏览器CrawlerRunConfig管单次爬取。下面只挑最常用的 3 个参数其余以官方文档为准。1.cache_mode— 决定是否读缓存配置项CrawlerRunConfig的字段共 4 种模式BYPASS/ENABLED/WRITE_ONLY/READ_ONLY。何时用默认是BYPASS每次都现取。批量爬静态站点如文档站时改成ENABLED重复请求直接命中缓存省掉浏览器开销。一行示例CrawlerRunConfig(cache_modeCacheMode.ENABLED)2.css_selector— 精确锁定页面局部配置项只把选择器命中的元素送去做 Markdown 和提取其余内容丢弃。何时用新闻页只想要正文、列表页只想要条目区。注意它和excluded_tags方向相反——后者是「去掉这些标签」两者可配合使用。一行示例CrawlerRunConfig(css_selectorarticle)3.scan_full_page— 拿到无限滚动的动态内容配置项设为True后爬虫模拟向下滚动触发懒加载scroll_delay控制每步滚动后的等待秒数。何时用信息流、商品列表这类不滚到底就不渲染的页面。注意如果只是内容加载慢不必滚动加一句delay_before_return_html3等 3 秒就够了。一行示例CrawlerRunConfig(scan_full_pageTrue, scroll_delay0.5)完整小场景给长文章页做内容清洗接着把内容过滤器用起来做一个完整可运行的例子。以维基百科这种长页面为例去掉侧栏和杂项观察内容压缩了多少import asyncio from crawl4ai import ( AsyncWebCrawler, CrawlerRunConfig, CacheMode, DefaultMarkdownGenerator, PruningContentFilter ) async def main(): # 内容过滤器剪掉与正文相关性低的块 md_generator DefaultMarkdownGenerator( content_filterPruningContentFilter(threshold0.48, threshold_typefixed) ) config CrawlerRunConfig( cache_modeCacheMode.BYPASS, # 每次都取新鲜内容 markdown_generatormd_generator, # 启用过滤器 excluded_tags[nav, footer, aside], # 侧栏、页脚先删掉 ) async with AsyncWebCrawler() as crawler: result await crawler.arun( urlhttps://en.wikipedia.org/wiki/Apple, configconfig ) raw len(result.markdown.raw_markdown) fit len(result.markdown.fit_markdown) print(f原始 {raw} 字符清洗后 {fit} 字符压缩比 {fit / raw:.2f}) print(result.markdown.fit_markdown[:400]) asyncio.run(main())运行后你会看到两组数字原始 Markdown 往往有上万字符fit_markdown清洗后常常减半。threshold0.48控制过滤力度想剪得更狠就把它调高。排障速查表 爬取出问题时按表对照覆盖了绝大多数常见情况现象原因解决办法安装后报找不到浏览器Chromium 依赖没装上执行python -m playwright install --with-deps chromiumUbuntu 报系统库缺失缺 X11、GTK 等系统依赖按官方安装文档的依赖清单用sudo apt-get install补齐页面内容不全JS 没渲染等待时间太短CrawlerRunConfig加delay_before_return_html3或确认BrowserConfig(java_script_enabledTrue)被站点频繁拦截IP 或指纹被识别为爬虫设CrawlerRunConfig(simulate_userTrue, magicTrue)或给BrowserConfig传proxy_config长时间爬取内存持续增长浏览器进程没有回收BrowserConfig设max_pages_before_recycle500并开memory_saving_modeTrueMarkdown 噪音很多没配内容过滤器给markdown_generator配PruningContentFilter参考上一节示例下一步能输出干净 Markdown 之后下一步通常是结构化提取用JsonCssExtractionStrategy把重复的页面结构如商品列表转成 JSON或者接上 LLM 做语义提取。更多细节见这两份官方文档安装指南快速上手教程建议把上一节示例里的 URL 换成你每天用的页面公司博客、产品列表页观察一次输出长度变化对参数效果建立直觉后再去碰提取策略。【免费下载链接】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),仅供参考