资讯动态

Crawl4AI:3 步配好登录态、动态页面与结构化数据提取

发布时间:2026/8/29 13:01:52 来源:尧图企业网站定制
Crawl4AI3 步配好登录态、动态页面与结构化数据提取【免费下载链接】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运营每天要盯竞店价格而数据卡在四道关上竞品站要登录才能看全价列表靠滚动和加载更多动态渲染HTML 里的字段位置各站不同页面结构还隔三差五改版。Crawl4AI 是一个开源的网页数据采集框架它用无头浏览器不弹窗口的爬虫专用浏览器跑真实渲染再配合 CSS 选择器或 LLM 指令做结构化数据提取把这四道关一次配完之后一条命令就能复用。把登录存成 Profile下次直接带上你会遇到什么问题多个后台各要各的登录流程手工存 cookie 很快过期爬一半掉线得重来。Profile 怎么做的它把整个浏览器数据目录cookie、LocalStorage、IndexedDB持久化成一份独立身份下次启动时直接加载会话还在有效期内就不用再登。crwl profiles # 建一个 Profile在打开的浏览器里登录 crwl https://shop.example.com/admin -p shop-admin第二段在做什么-p shop-admin复用刚登录好的身份。改两处即可——Profile 名和你要爬的后台地址。不想用交互向导时也可以在 Python 配置里直接指向数据目录BrowserConfig(user_data_dir/path/to/profile)配use_managed_browserTrue。边界要说清楚验证码、双因素、OAuth 跳转这类流程没法自动过第一次得你人工在弹出的浏览器里点完之后的爬取都是复用Profile 只在会话有效期内免登录过期了重新登一次即可。常见误区以为 Profile 只是把 cookie 抄走。它存的是完整会话环境LocalStorage、站点缓存都在这比裸 cookie 更接近真实浏览器不容易一上来就被判异常。动态页面怎么拿全用 wait_for 代替 sleep你会遇到什么问题page.goto返回的 HTML 经常只是骨架价格、列表要靠滚动和点击才出来抓回来就是残缺的。Crawl4AI 的无头浏览器爬取按固定顺序执行js_code_before_wait先触发加载→wait_for等某个元素出现→delay_before_return_html安全余量→js_code收尾脚本。config CrawlerRunConfig( wait_for.price-cell, # 等到价格格子出现才收 HTML scan_full_pageTrue, # 滚动整页触发懒加载 scroll_delay0.5, virtual_scroll_config{ # 无限滚动列表专用 container_selector: .feed, scroll_count: 10, }, ) # async with AsyncWebCrawler() as crawler: await crawler.arun(url, config)这段在做什么wait_for把等待交给条件而不是时间滚动列表才加virtual_scroll_config虚拟滚动指只渲染视口内条目的列表滚走就回收 DOM。需要点加载更多时往js_code里放一句document.querySelector(.load-more).click()就行。为什么不写死 sleep固定等待轻则每页白等几秒重则页面慢一点就抓不全wait_for让页面快慢自己决定节奏。只有页面明显不稳时才用delay_before_return_html补零点几秒余量。提取出能用的数据CSS 选 CSSLLM 兜底你会遇到什么问题把 HTML 拿到手之后字段还埋在几十个 div 里人工解析每站都要重写一遍规则。CSS 选择器提取JsonCssExtractionStrategy用一个 schema 文件定义字段type用json-csscrwl https://shop.example.com/products -e extract_css.yml -s products_schema.json -o jsonschema 里每条字段写baseSelector和字段级selector例如baseSelector填.product-item字段title填h2、price填span.price。这段在做什么按选择器把字段抠成 JSON-o json直接落地。改选择器就能跟着页面改版走。LLM 指令提取LLMExtractionStrategy则是用自然语言描述你要什么-e里写type: llm加 instruction适合结构多变、语义复杂的页面比如提取每条评论的作者、时间和情感倾向。CSS 选择器LLM 指令速度快本地完成慢走模型稳定性结构一变就失效抗小改版但可能出错适用结构稳定的列表结构多变、字段靠语义判断常见误区觉得 LLM 提取总是更省事。结构稳定的页面用 CSS 又快又准LLM 提取该花在选择器写不动的页面上还省 token。串起来一条命令跑完三件事crwl https://shop.example.com/products \ -p shop-admin \ -c wait_for.price-cell,scan_full_pagetrue,scroll_delay0.5 \ -e extract_css.yml -s products_schema.json -o json这段在做什么-p带上登录态-c里逗号分隔的是运行时参数智能等待加整页滚动-e/-s负责提取-o json输出结构化结果。要改成 LLM 提取把-e/-s换成 LLM 策略的配置文件加 JSON schema 就行页面是无限滚动列表时滚动参数要改到virtual_scroll_config那一步得走 Python 配置。去哪深入快速入门docs/examples/quickstart.py可运行的最小示例先拿一个静态页跑通API 参考docs/md_v2/api/参数逐个有说明配wait_for、scan_full_page时查这里页面交互与动态页面抓取docs/md_v2/core/page-interaction.md讲js_code执行顺序虚拟滚动专项docs/md_v2/advanced/virtual-scroll.md推特、Instagram 式列表的处理仓库克隆地址git clone https://gitcode.com/GitHub_Trending/craw/crawl4ai。如果你要维护几条固定的数据采集线——盯竞店、收行情、抓后台报表——这套流水线够你从登录到落地 JSON 全配完。下一步从 quickstart 跑通一个静态页再把你的真实站点套进 Profile 和wait_for里试一轮。【免费下载链接】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),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价