<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Crawl4AI on Fanssen Notes</title>
    <link>https://makismkuous-bot.github.io/tags/crawl4ai/</link>
    <description>Recent content in Crawl4AI on Fanssen Notes</description>
    <image>
      <title>Fanssen Notes</title>
      <url>https://makismkuous-bot.github.io/</url>
      <link>https://makismkuous-bot.github.io/</link>
    </image>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Sat, 23 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://makismkuous-bot.github.io/tags/crawl4ai/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>对比了几款网页爬虫，我选了 Crawl4AI</title>
      <link>https://makismkuous-bot.github.io/posts/crawl4ai-experience/</link>
      <pubDate>Sat, 23 May 2026 00:00:00 +0000</pubDate>
      <guid>https://makismkuous-bot.github.io/posts/crawl4ai-experience/</guid>
      <description>&lt;h2 id=&#34;爬虫工具的选择&#34;&gt;爬虫工具的选择&lt;/h2&gt;
&lt;p&gt;写爬虫的需求大多数人都会遇到——想从某个网站上抓取一些内容做分析。&lt;/p&gt;
&lt;p&gt;传统的爬虫工具大致分两类。一类是 Scrapy 这样的完整框架，功能强大，但配置复杂。写一个简单的抓取任务可能需要定义 Item、Pipeline、Middleware 等多个组件。另一类是 Requests + BeautifulSoup 的组合，上手简单，但遇到 JavaScript 渲染的页面就无能为力了。&lt;/p&gt;
&lt;p&gt;Crawl4AI 的出现填补了两者之间的空白。它的定位是&amp;quot;专为 LLM 时代设计的爬虫工具&amp;quot;。&lt;/p&gt;
&lt;h2 id=&#34;为什么选-crawl4ai&#34;&gt;为什么选 Crawl4AI&lt;/h2&gt;
&lt;p&gt;最大的理由是它对 JavaScript 渲染的支持。现在的网页大部分是前后端分离的，数据通过异步请求加载，页面最终内容由 JavaScript 渲染生成。如果用传统爬虫去抓取这类网站，拿到的是空的 HTML 骨架，真正的数据根本不在这里。&lt;/p&gt;
&lt;p&gt;Crawl4AI 内置了浏览器引擎，会自动执行页面上的 JavaScript，等页面完全渲染后再提取内容。这意味着你不必为了一个需要 JS 渲染的页面去额外配置 Selenium 或 Playwright。&lt;/p&gt;
&lt;p&gt;另外，它的默认输出格式是 Markdown。这个细节在实际使用中很实用——抓取到的内容可以直接喂给 LLM 做分析，省去了格式转换的步骤。&lt;/p&gt;
&lt;h2 id=&#34;安装和基本使用&#34;&gt;安装和基本使用&lt;/h2&gt;
&lt;p&gt;Crawl4AI 的安装很简单，一行命令搞定：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pip install crawl4ai
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;装完之后跑一个小例子试试：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;from&lt;/span&gt; crawl4ai &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; WebCrawler
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;crawler &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; WebCrawler()
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;result &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; crawler&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;run(url&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://example.com&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(result&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;markdown)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;默认输出就是 Markdown，干净整洁。如果你需要原始 HTML，也可以拿到：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(result&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;html)        &lt;span style=&#34;color:#75715e&#34;&gt;# 原始 HTML&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(result&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;extracted_content)  &lt;span style=&#34;color:#75715e&#34;&gt;# 提取后的内容&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;更高级的抓取配置&#34;&gt;更高级的抓取配置&lt;/h2&gt;
&lt;p&gt;实际项目里，一条 URL 裸跑往往不够。Crawl4AI 提供了丰富的配置选项，这里分享几个常用的场景。&lt;/p&gt;
&lt;h3 id=&#34;设置超时和等待&#34;&gt;设置超时和等待&lt;/h3&gt;
&lt;p&gt;有的页面加载很慢，尤其是那些带大量图片和图表的网站。可以给爬虫指定最长等待时间：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;result &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; crawler&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;run(
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    url&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://example.com/slow-page&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    wait_until&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;networkidle&amp;#34;&lt;/span&gt;,   &lt;span style=&#34;color:#75715e&#34;&gt;# 等待网络请求空闲&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    timeout&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;30&lt;/span&gt;                  &lt;span style=&#34;color:#75715e&#34;&gt;# 最长等 30 秒&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;wait_until&lt;/code&gt; 参数有几个选项：&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
