尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Crawl4AI 快速上手:5 分钟拿到可进模型的网页数据

Crawl4AI 快速上手:5 分钟拿到可进模型的网页数据 Crawl4AI 快速上手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不用注册服务、不用 API 密钥。写完第一个脚本 30 秒后内容就能直接喂给 LLM 或数据管道。这就是 Crawl4AI一个面向 LLM 场景的开源网页爬虫做的事很直接抓取网页转成结构化文本。安装并验证环境装包加初始化两条命令pip install -U crawl4ai crawl4ai-setupcrawl4ai-setup会顺带装好 Playwright 浏览器。装完跑一行验证crawl4ai-doctor跑通后你会看到逐项打勾的体检结果Python 版本、Playwright、浏览器路径全 OK。有缺失它会直接点名是哪个环节没装好。其他安装方式按需取用预发布版pip install crawl4ai --pre开发模式改源码clone 仓库https://gitcode.com/GitHub_Trending/craw/crawl4ai然后cd crawl4ai pip install -e .全量依赖pip install -e .[all]写一个能跑的最小爬虫这段脚本做的事起一个无头浏览器抓一个页面打印 Markdown 前 300 字符。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.success) print(result.markdown[:300]) if __name__ __main__: asyncio.run(main())跑完你会看到True和一段网页的 Markdown 正文。这就是 Crawl4AI 的核心价值网页到结构化文本是默认输出不是需要额外配置的功能。不想写 Python 也有捷径装完自带的crwl命令行可以直接抓crwl https://www.nbcnews.com/business -o markdown核心能力拆解把 Markdown 过滤成模型能读的正文原始 Markdown 带着导航栏、页脚、广告位白白吃 token。挂一个内容过滤器Crawl4AI 会按文本密度自动剪掉低价值块from crawl4ai import AsyncWebCrawler, CrawlerRunConfig, CacheMode from crawl4ai.markdown_generation_strategy import DefaultMarkdownGenerator from crawl4ai.content_filter_strategy import PruningContentFilter config CrawlerRunConfig( cache_modeCacheMode.BYPASS, markdown_generatorDefaultMarkdownGenerator( content_filterPruningContentFilter(threshold0.4) ), ) async with AsyncWebCrawler() as crawler: result await crawler.arun(https://en.wikipedia.org/wiki/Apple, configconfig) print(len(result.markdown.raw_markdown)) # 过滤前 print(len(result.markdown.fit_markdown)) # 过滤后两个数字相除通常能砍掉三四成。批量喂 LLM 做 RAG 时这一步直接省钱省延迟。用 CSS 选择器抽结构化数据整页正文太杂你只想要商品标题和价格。给爬虫配一个 CSS 选择器它就只保留选中的部分再进一步用 JSON 抽取策略直接产出结构化数据from crawl4ai import AsyncWebCrawler, CrawlerRunConfig, CacheMode, JsonCssExtractionStrategy schema { name: Items, baseSelector: div.item, fields: [ {name: title, selector: h2, type: text}, {name: link, selector: a, type: attribute, attribute: href}, ], } config CrawlerRunConfig( cache_modeCacheMode.BYPASS, extraction_strategyJsonCssExtractionStrategy(schema), ) async with AsyncWebCrawler() as crawler: result await crawler.arun(https://example.com/list, configconfig) print(result.extracted_content) # 一条 JSON 字符串页面结构稳定的列表页、商品页就适合走这条路零模型成本结果可复现跑一万页也不心疼。处理 JS 动态加载与滚动加载的页面内容要等点击才出现、要往下滚才渲染你拿到的第一版 HTML 就是残的。常见场景两个参数加一段脚本就够from crawl4ai import AsyncWebCrawler, CrawlerRunConfig, VirtualScrollConfig config CrawlerRunConfig( js_codedocument.querySelector(.load-more)?.click(), # 点一下加载更多 delay_before_return_html2, # 等内容落定再取 HTML virtual_scroll_configVirtualScrollConfig( container_selector#feed, scroll_count20, ), )其中virtual_scroll_config专治时间线这类「滚动时删掉旧内容」的虚拟滚动页面不配它你只能拿到视口里的几条。抓社交信息流、长数据表时必加。深度爬取整站 单页不够要沿链接把整站抓下来。一行策略配置按 BFS 广度优先爬深度、页数、域名边界都可控from crawl4ai import AsyncWebCrawler, CrawlerRunConfig from crawl4ai.deep_crawling import BFSDeepCrawlStrategy config CrawlerRunConfig( deep_crawl_strategyBFSDeepCrawlStrategy( max_depth2, # 往深处爬 2 层 include_externalFalse, # 不跳出当前域名 max_pages50, # 最多 50 页兜底 ), ) async with AsyncWebCrawler() as crawler: results await crawler.arun(https://example.com, configconfig) print(f共爬 {len(results)} 页)返回的是列表每页自带 Markdown 和深度等元数据。给 LLM 建站点级知识库就用它站点大时再挂一个 URL 评分器优先爬相关页面。排掉三个高频问题浏览器依赖缺失arun 直接报错。现象是抓任何页面都抛 Playwright 相关的异常原因是crawl4ai-setup没跑完或装浏览器时被中断。手动补装一次即可python -m playwright install --with-deps chromium装完原脚本直接能跑不用重装包。页面内容只出来一半。Markdown 里列表项断断续续多半是动态内容还没加载完就取了 HTML。把delay_before_return_html提到 2~3 秒或者用wait_for指定某个关键元素等真正的加载完成信号别盲目死等。被目标站点拦返回空内容或验证页。先换真实感强的user_agent再挂代理还不行就降并发、放慢频率from crawl4ai import BrowserConfig browser BrowserConfig( headlessTrue, user_agentMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) ..., proxy_config{server: http://127.0.0.1:8080}, )大部分「被反爬」的错觉其实只是 UA 是裸 Playwright 暴露了身份。接下来往哪走深度爬取全貌docs/md_v2/core/deep-crawling.md过滤器链、URL 评分、崩溃恢复都在里面虚拟滚动完整文档docs/md_v2/advanced/virtual-scroll.mdLLM 抽取示例docs/examples/llm_extraction_openai_pricing.py定义一个 Pydantic 模型就能让 LLM 按结构吐数据当你需要把网站内容喂给 LLM——不管是搭 RAG 知识库、批量比价还是给 Agent 备料——Crawl4AI 把「抓页面、洗噪音、抽数据」压缩成了几行配置。剩下的就是挑个真实站点跑起来。【免费下载链接】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),仅供参考
返回列表