跳转到内容

Spider 抓取器

Spider最快
的开源抓取和爬取工具,可返回适合 LLM 使用的数据。
它可以把任意网站转换为纯 HTML、markdown、元数据或文本,同时还能借助 AI 执行自定义动作进行爬取。

要使用 SpiderTool,你需要同时安装 Spider SDK
crewai[tools] SDK:

Terminal window
pip install spider-client 'crewai[tools]'

下面示例展示如何使用 SpiderTool 让你的智能体抓取和爬取网站。
Spider API 返回的数据已经适合 LLM 使用,因此无需额外清洗。

from crewai_tools import SpiderTool
def main():
spider_tool = SpiderTool()
searcher = Agent(
role="Web Research Expert",
goal="Find related information from specific URL's",
backstory="An expert web researcher that uses the web extremely well",
tools=[spider_tool],
verbose=True,
)
return_metadata = Task(
description="Scrape https://spider.cloud with a limit of 1 and enable metadata",
expected_output="Metadata and 10 word summary of spider.cloud",
agent=searcher
)
crew = Crew(
agents=[searcher],
tasks=[
return_metadata,
],
verbose=2
)
crew.kickoff()
if __name__ == "__main__":
main()
参数类型描述
api_keystring指定 Spider API key。如果未指定,则会从环境变量 SPIDER_API_KEY 中读取。
paramsobject请求的可选参数。默认值为 {"return_format": "markdown"},以便优化面向 LLM 的内容。
requeststring要执行的请求类型(httpchromesmart)。smart 默认使用 HTTP,必要时切换为 JavaScript 渲染。
limitint每个网站可爬取的最大页面数。设置为 0 或省略则表示无限制。
depthint最大爬取深度。设置为 0 表示不限制。
cachebool启用 HTTP 缓存以加快重复运行。默认值为 true
budgetobject为爬取页面设置基于路径的限制,例如 {"*":1} 表示只抓取根页面。
localestring请求的语言环境,例如 en-US
cookiesstring请求的 HTTP cookies。
stealthbool为 Chrome 请求启用隐身模式以避免被检测。默认值为 true
headersobject适用于所有请求的 HTTP 头部键值映射。
metadatabool存储页面和内容的元数据,帮助 AI 互操作。默认值为 false
viewportobject设置 Chrome 视口尺寸。默认值为 800x600
encodingstring指定编码类型,例如 UTF-8SHIFT_JIS
subdomainsbool爬取中包含子域名。默认值为 false
user_agentstring自定义 HTTP user agent。默认使用随机 agent。
store_databool启用请求的数据存储。如果设置则覆盖 storageless。默认值为 false
gpt_configobject允许 AI 生成爬取动作,并可通过数组为 "prompt" 提供链式步骤。
fingerprintbool为 Chrome 启用高级指纹识别。
storagelessbool防止任何数据存储,包括 AI embeddings。默认值为 false
readabilitybool使用 Mozilla 的 readability 对内容进行预处理,以改善 LLM 可读性。
return_formatstring返回数据的格式:markdownrawtexthtml2text。使用 raw 获取默认页面格式。
proxy_enabledbool启用高性能代理以避免网络层阻断。
query_selectorstring用于从标记中提取内容的 CSS 查询选择器。
full_resourcesbool下载网站链接的所有资源。
request_timeoutint请求超时时间(秒,5-60)。默认值为 30
run_in_backgroundbool在后台运行请求,适用于数据存储和触发 dashboard 爬取。如果设置了 storageless,则无效。