Skip to main content
Open In ColabOpen on GitHub

AgentQLLoader

AgentQL 的文档加载器使用 AgentQL 查询从任何网页提取结构化数据。AgentQL 可跨多个语言和网页使用,且不易随时间和更改而失效。

概览

AgentQLLoader 需要以下两个参数:

  • url: 要从中提取数据的网页的 URL。
  • query: 要执行的 AgentQL 查询。 在 文档 中了解有关如何编写 AgentQL 查询的更多信息,或在 AgentQL Playground 中进行测试。

设置以下参数是可选的:

  • api_key: 来自 dev.agentql.com 的 AgentQL API 密钥。 可选
  • timeout: 请求超时前等待的秒数。 默认为 900
  • is_stealth_mode_enabled: 是否启用实验性的反机器人规避策略。此功能可能并非在所有时间都适用于所有网站。启用此模式后,数据提取可能需要更长时间才能完成。 默认为 False
  • wait_for: 在提取数据前等待页面加载的秒数。 默认为 0
  • is_scroll_to_bottom_enabled: 在提取数据前滚动到页面底部。 默认为 False
  • mode: "standard" 使用深度数据分析,而 "fast" 则牺牲部分分析深度以换取速度,并适用于大多数用例。在此指南中了解有关模式的更多信息。 默认为 "fast"
  • is_screenshot_enabled: 在提取数据前是否截屏。在 'metadata' 中以 Base64 字符串形式返回。 默认为 False

AgentQLLoader 是使用 AgentQL 的 REST API 实现的。

集成详情

ClassPackageLocalSerializableJS support
AgentQLLoaderlangchain-agentql

加载器功能

SourceDocument Lazy LoadingNative Async Support
AgentQLLoader

设置

要使用 AgentQL Document Loader,您需要配置 AGENTQL_API_KEY 环境变量,或者使用 api_key 参数。您可以从我们的 Dev Portal 获取 API 密钥。

安装

安装 langchain-agentql

%pip install -qU langchain_agentql

设置凭据

import os

os.environ["AGENTQL_API_KEY"] = "YOUR_AGENTQL_API_KEY"

初始化

接下来,实例化你的模型对象:

from langchain_agentql.document_loaders import AgentQLLoader

loader = AgentQLLoader(
url="https://www.agentql.com/blog",
query="""
{
posts[] {
title
url
date
author
}
}
""",
is_scroll_to_bottom_enabled=True,
)

加载

docs = loader.load()
docs[0]
Document(metadata={'request_id': 'bdb9dbe7-8a7f-427f-bc16-839ccc02cae6', 'generated_query': None, 'screenshot': None}, page_content="{'posts': [{'title': 'Launch Week Recap—make the web AI-ready', 'url': 'https://www.agentql.com/blog/2024-launch-week-recap', 'date': 'Nov 18, 2024', 'author': 'Rachel-Lee Nabors'}, {'title': 'Accurate data extraction from PDFs and images with AgentQL', 'url': 'https://www.agentql.com/blog/accurate-data-extraction-pdfs-images', 'date': 'Feb 1, 2025', 'author': 'Rachel-Lee Nabors'}, {'title': 'Introducing Scheduled Scraping Workflows', 'url': 'https://www.agentql.com/blog/scheduling', 'date': 'Dec 2, 2024', 'author': 'Rachel-Lee Nabors'}, {'title': 'Updates to Our Pricing Model', 'url': 'https://www.agentql.com/blog/2024-pricing-update', 'date': 'Nov 19, 2024', 'author': 'Rachel-Lee Nabors'}, {'title': 'Get data from any page: AgentQL’s REST API Endpoint—Launch week day 5', 'url': 'https://www.agentql.com/blog/data-rest-api', 'date': 'Nov 15, 2024', 'author': 'Rachel-Lee Nabors'}]}")
print(docs[0].metadata)
{'request_id': 'bdb9dbe7-8a7f-427f-bc16-839ccc02cae6', 'generated_query': None, 'screenshot': None}

懒加载

AgentQLLoader 目前一次只加载一个 Document。因此,load()lazy_load() 的行为是相同的:

pages = [doc for doc in loader.lazy_load()]
pages
[Document(metadata={'request_id': '06273abd-b2ef-4e15-b0ec-901cba7b4825', 'generated_query': None, 'screenshot': None}, page_content="{'posts': [{'title': 'Launch Week Recap—make the web AI-ready', 'url': 'https://www.agentql.com/blog/2024-launch-week-recap', 'date': 'Nov 18, 2024', 'author': 'Rachel-Lee Nabors'}, {'title': 'Accurate data extraction from PDFs and images with AgentQL', 'url': 'https://www.agentql.com/blog/accurate-data-extraction-pdfs-images', 'date': 'Feb 1, 2025', 'author': 'Rachel-Lee Nabors'}, {'title': 'Introducing Scheduled Scraping Workflows', 'url': 'https://www.agentql.com/blog/scheduling', 'date': 'Dec 2, 2024', 'author': 'Rachel-Lee Nabors'}, {'title': 'Updates to Our Pricing Model', 'url': 'https://www.agentql.com/blog/2024-pricing-update', 'date': 'Nov 19, 2024', 'author': 'Rachel-Lee Nabors'}, {'title': 'Get data from any page: AgentQL’s REST API Endpoint—Launch week day 5', 'url': 'https://www.agentql.com/blog/data-rest-api', 'date': 'Nov 15, 2024', 'author': 'Rachel-Lee Nabors'}]}")]

API 参考

有关如何使用此集成的更多信息,请参阅 git 仓库langchain 集成文档