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

资讯详情

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

Crawl4AI 异步网页爬虫:三行代码把网页变成 LLM 可用的 Markdown

Crawl4AI 异步网页爬虫:三行代码把网页变成 LLM 可用的 Markdown Crawl4AI 异步网页爬虫三行代码把网页变成 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把网页喂给大语言模型之前满屏的导航、广告、脚本代码都是噪音。Crawl4AI 是一个开源的异步网页爬取框架能把渲染后的页面直接转成干净的 LLM 就绪 Markdown核心调用只有一行arun。下面按使用场景讲清它最好用的部分。项目速览Crawl4AI 是什么、适合谁是什么基于 Playwright浏览器自动化库的 Python 异步爬虫驱动真实浏览器执行 JavaScript再把页面内容转成 Markdown。解决什么问题现代网页的动态内容传统抓取器拿不到原始 HTML 又太脏直接喂给大模型效果很差。Crawl4AI 一次完成渲染、清洗、转换。适合谁给 RAG检索增强生成、AI Agent、数据管道持续准备网页数据的开发者。与同类工具的差异多数爬虫框架吐原始 HTML清洗靠你自己Crawl4AI 输出的就是LLM 就绪的 Markdown还内置本地缓存pip 安装即可用不需要任何 API key。部署形态既可以是 pip 库也带命令行工具crwl和 Docker API 服务单机脚本到多应用共享都能覆盖。动手实践按场景使用 Crawl4AICrawl4AI 安装与环境准备先装包再跑一次安装后脚本它会自动下载浏览器依赖crawl4ai-doctor会检查环境是否就绪出问题时会直接告诉你是哪一步缺了东西。pip install -U crawl4ai crawl4ai-setup crawl4ai-doctor如果浏览器下载失败用python -m playwright install --with-deps chromium手动补齐即可。直接拿到页面的 Markdown 内容 最小用法就一行arun传入 URL返回的CrawlResult里既有转换后的 Markdownresult.markdown也有分类好的链接列表result.links分内部/外部。import asyncio from crawl4ai import AsyncWebCrawler async def main(): async with AsyncWebCrawler() as crawler: result await crawler.arun(urlhttps://example.com) print(result.success) print(result.markdown.raw_markdown[:500]) if __name__ __main__: asyncio.run(main())跑完你会看到True和一段干净的 Markdown标题、正文、表格都在导航栏和广告块已经没了。用 JavaScript 和等待条件处理动态页面很多站点首屏之后才异步加载主体内容直接抓会拿到半张空壳。下面的例子先执行一小段 JS 触发加载更多按钮再用wait_for等目标元素出现后才提取内容wait_for_timeout是这个等待的超时上限毫秒。import asyncio from crawl4ai import AsyncWebCrawler async def main(): async with AsyncWebCrawler() as crawler: result await crawler.arun( urlhttps://example.com/list, js_code[document.querySelector(.load-more)?.click()], wait_for.item, wait_for_timeout10000, ) print(len(result.markdown.raw_markdown)) if __name__ __main__: asyncio.run(main())跑完打印的字符数明显比首屏多说明列表项已经加载进页面才被提取而不是只抓到初始骨架。用 excluded_tags 排除导航与广告页面噪音多的时候不必自己做后处理把要丢弃的标签传进excluded_tags它们在生成 Markdown 前就被剔除remove_overlay_elements会顺手清掉遮罩、弹窗这类覆盖层元素。import asyncio from crawl4ai import AsyncWebCrawler async def main(): async with AsyncWebCrawler() as crawler: result await crawler.arun( urlhttps://example.com/article, excluded_tags[nav, footer, aside, form], remove_overlay_elementsTrue, ) print(result.markdown.raw_markdown[:300]) if __name__ __main__: asyncio.run(main())跑完得到的输出只剩正文部分字符量比默认抓取少一大截喂给模型时 token 成本也随之降下来。完整场景拆解从商品页抽取结构化字段这是落地里最典型的需求把散落在商品页里的信息变成能直接入库的结构化数据。输入一个商品页 URLhttps://example.com/product外加一份 schema描述要取哪些字段、字段大概在哪里。操作schema 里每个字段只给一个大致正确的 CSS 选择器交给LLMExtractionStrategy基于大模型按 schema 做字段匹配的策略import asyncio from crawl4ai import AsyncWebCrawler, CrawlerRunConfig, LLMExtractionStrategy schema { name: Product Info, baseSelector: body, fields: [ {name: name, selector: h1, type: text}, {name: price, selector: .price, type: text}, ], } async def main(): extractor LLMExtractionStrategy( schemaschema, modelgpt-4.1-mini, api_keyyour-api-key) config CrawlerRunConfig(extraction_strategyextractor) async with AsyncWebCrawler() as crawler: result await crawler.arun( urlhttps://example.com/product, configconfig) print(result.extracted_content) if __name__ __main__: asyncio.run(main())为什么这么配选择器只起指个大概位置的作用站点改版导致 CSS 选择器不准时大模型会结合上下文仍然挑出正确内容管道不会因为对方页面动了一版就挂掉。想省 token 的字段比如固定格式的日期也可以把 type 换成 regex 规则不走模型。输出result.extracted_content是一段 JSON 字符串形如{name: ..., price: ...}解析后即可入库或交给下游流程。Crawl4AI 常见报错排查首次运行提示找不到浏览器Playwright 的 Chromium 没下载成功。修复python -m playwright install --with-deps chromium。动态页面抓出来是空的页面异步渲染首屏数据没出来就结束了。修复加wait_for.selector或delay_before_return_html1强制延迟提取。抓到的内容总是旧的开了缓存后反复返回本地存储的结果。修复调用时传bypass_cacheTrue。设置超时不生效参数名是page_timeout毫秒不是timeout。修复CrawlerRunConfig(page_timeout30000)。收尾Crawl4AI 的核心价值一句话把脏网页变成能直接喂给大模型的 Markdown 和结构化数据浏览器管道你一行都不用自己搭。接下来可以往两个方向走用 Deep Crawl 按策略自动遍历目录式抓取多个页面或者部署它自带的 Docker API 服务把爬虫变成网络服务供多个应用调用。更完整的参数说明见仓库内的 docs/md_v2/core/simple-crawling.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),仅供参考
返回列表