登录

安装

pip install langchain-crawlbase

轻量安装 - 只会带上 langchain-corerequests,无需其他 LangChain 附加组件。已在 Python 3.9+ 上测试通过。

文档加载器

可在 LangChain 需要加载器的任何地方使用 CrawlbaseLoader - RAG 管道、向量库摄取、代理上下文均可。

from langchain_crawlbase import CrawlbaseLoader

loader = CrawlbaseLoader(
    urls=["https://example.com/blog/post-1", "https://example.com/blog/post-2"],
    token="YOUR_TOKEN",
)
docs = loader.load()

from langchain_community.vectorstores import Chroma
from langchain_openai import OpenAIEmbeddings

vs = Chroma.from_documents(docs, OpenAIEmbeddings())

代理工具

将 Crawlbase 暴露为代理工具,让 LLM 能按需抓取 URL。

from langchain_openai import ChatOpenAI
from langchain_crawlbase import CrawlbaseTool

tool = CrawlbaseTool(token="YOUR_TOKEN")

llm = ChatOpenAI(model="gpt-4o").bind_tools([tool])
llm.invoke("What's on the homepage of anthropic.com today?")

检索器

CrawlbaseRetriever 抓取一组固定的种子 URL,并返回与查询匹配的文档。当您希望在不搭建向量存储的情况下获取实时结果时非常有用。

from langchain_crawlbase import CrawlbaseRetriever

retriever = CrawlbaseRetriever(
    token="YOUR_TOKEN",
    urls=[
        "https://crawlbase.com/docs/crawling-api",
        "https://crawlbase.com/docs/crawling-api#parameters",
    ],
)
docs = retriever.invoke("how do I render JavaScript pages")

v0.1 对抓取到的 Markdown 使用不区分大小写的子串匹配。如需语义检索,请将 CrawlbaseLoader 与您选择的向量存储搭配使用。

JavaScript 渲染页面

对于 SPA 和通过 JavaScript 加载内容的页面,请在同一个 token 参数中传入您的 JavaScript token - Crawlbase 会根据您发送的 token 路由请求。无需额外标志。

额外的 Crawlbase 参数

通过 extra_params 转发任何 Crawlbase API 参数countrydevicepage_waitscrollcss_click_selector、cookies、截图等)。

loader = CrawlbaseLoader(
    token="YOUR_TOKEN",
    urls=["https://example.com"],
    extra_params={"country": "US", "device": "mobile"},
)

文档元数据

加载器/检索器返回的每个 Document 都携带来自 Crawlbase 的响应元数据:

  • source:您请求的 URL
  • resolved_url:经过重定向后的最终 URL(当与 source 不同时)
  • pc_status:Crawlbase 的最终状态码
  • original_status:目标站点返回的 HTTP 状态码
  • content_type:响应的 content-type 头

常见用法

  • 对最新抓取内容做 RAG: 使用 CrawlbaseLoader 抓取若干种子 URL,切分为块,嵌入,查询。
  • 实时网络研究代理:CrawlbaseTool 与搜索工具一起注册 - 代理先搜索,然后抓取相关结果。
  • 站点监控: 调度加载器每天重新抓取相同的 URL,并将差异写入您的向量存储。