跳转至

SpiderTool

描述

Spider 是最快的开源抓取器和爬虫,能够返回LLM-ready数据。它可以将任何网站转换为纯HTML、Markdown、元数据或文本,同时允许您使用AI进行自定义操作的爬取。

安装

要使用Spider API,您需要下载Spider SDK和crewai[tools] SDK:

pip install spider-client 'crewai[tools]'

示例

此示例展示了如何使用Spider工具使您的代理能够抓取和爬取网站。从Spider API返回的数据已经是LLM-ready的,因此无需进行任何清理。

from crewai_tools import SpiderTool

def main():
    spider_tool = SpiderTool()

    searcher = Agent(
        role="Web Research Expert",
        goal="从特定URL中查找相关信息",
        backstory="一个擅长使用网络的专家级网络研究员",
        tools=[spider_tool],
        verbose=True,
    )

    return_metadata = Task(
        description="抓取https://spider.cloud,限制为1,并启用元数据",
        expected_output="spider.cloud的元数据和10字摘要",
        agent=searcher
    )

    crew = Crew(
        agents=[searcher],
        tasks=[
            return_metadata,
        ],
        verbose=2
    )

    crew.kickoff()

if __name__ == "__main__":
    main()

参数

  • api_key (字符串,可选):指定Spider API密钥。如果未指定,它会在环境变量中查找SPIDER_API_KEY
  • params (对象,可选):请求的可选参数。默认为{"return_format": "markdown"},以返回更适合LLM的网站内容格式。
    • request (字符串):要执行的请求类型。可能的值有httpchromesmart。使用smart默认执行HTTP请求,直到需要JavaScript渲染HTML。
    • limit (整数):每个网站允许爬取的最大页面数。移除该值或设置为0以爬取所有页面。
    • depth (整数):最大深度的爬取限制。如果为0,则不应用限制。
    • cache (布尔值):使用HTTP缓存以加速重复运行。默认为true
    • budget (对象):包含路径和计数器的对象,用于限制页面数量,例如{"*":1}仅爬取根页面。
    • locale (字符串):请求使用的语言环境,例如en-US
    • cookies (字符串):添加用于请求的HTTP cookies。
    • stealth (布尔值):在无头chrome请求中使用隐身模式,以帮助防止被阻止。默认在chrome上为true
    • headers (对象):转发用于所有请求的HTTP头。该对象应为键值对的映射。
    • metadata (布尔值):存储有关页面和内容的元数据。这可能有助于改进AI互操作性。默认为false,除非您已经存储了启用该配置的网站。
    • viewport (对象):配置chrome的视口。默认为800x600
    • encoding (字符串):要使用的编码类型,如UTF-8SHIFT_JIS等。
    • subdomains (布尔值):允许包含子域名。默认为false
    • user_agent (字符串):为请求添加自定义HTTP用户代理。默认设置为随机代理。
    • store_data (布尔值):确定是否应使用存储。如果设置,则优先于storageless。默认为false
    • gpt_config (对象):使用AI生成在爬取过程中要执行的操作。您可以为"prompt"传递一个数组以链式步骤。
    • fingerprint (布尔值):在chrome中使用高级指纹。
    • storageless (布尔值):防止为请求存储任何类型的数据,包括存储和AI向量嵌入。默认为false,除非您已经存储了网站。
    • readability (布尔值):使用readability预处理内容以供阅读。这可能极大地改善LLM使用的内容。 return_format (字符串):返回数据的格式。可能的值有markdownrawtexthtml2text。使用raw返回页面的默认格式,如HTML等。
    • proxy_enabled (布尔值):为请求启用高性能高级代理,以防止在网络层面被阻止。
    • query_selector (字符串):从标记中提取内容时使用的CSS查询选择器。
    • full_resources (布尔值):爬取并下载网站的所有资源。
    • request_timeout (整数):请求使用的超时时间。超时时间可以是5-60。默认为30秒。


- run_in_background (布尔值):在后台运行请求。如果存储数据并希望触发对仪表板的爬取,则很有用。如果设置了storageless,则此选项无效。 ```