Hyperbrowser 加载器
Hyperbrowser 是一个用于运行和扩展无头浏览器的平台。它允许您大规模启动和管理浏览器会话,并提供易于使用的解决方案以满足任何网页抓取需求,例如抓取单个页面或爬取整个网站。
关键特性:
- 即时可扩展性 - 在几秒钟内启动数百个浏览器会话,无需基础设施方面的烦恼
- 简单集成 - 与 Puppeteer 和 Playwright 等流行工具无缝协作
- 强大的 API - 易于使用的 API,用于抓取/爬取任何网站,以及更多功能
- 绕过反机器人措施 - 内置隐身模式、广告拦截、自动验证码解决和代理轮换
此笔记本为您提供了一个快速概览,介绍如何使用Hyperbrowser 文档加载器。
有关 Hyperbrowser 的更多信息,请访问 Hyperbrowser 网站,或者如果您想查看文档,可以访问 Hyperbrowser 文档。
概览
集成细节
| Class | 包 | 本地 | 序列化 | JS支持 |
|---|---|---|---|---|
| HyperbrowserLoader | langchain-hyperbrowser | ❌ | ❌ | ❌ |
加载器功能
| 来源 | 文档延迟加载 | 原生异步支持 |
|---|---|---|
| HyperbrowserLoader | ✅ | ✅ |
设置
要访问Hyperbrowser文档加载器,您需要安装langchain-hyperbrowser集成包,并创建一个Hyperbrowser账户并获取API密钥。
Credentials
前往 Hyperbrowser 注册并生成API密钥。完成这些步骤后,请设置HYPERBROWSER_API_KEY环境变量:
安装
安装 langchain-hyperbrowser。
%pip install -qU langchain-hyperbrowser
初始化
现在我们可以实例化我们的模型对象并加载文档:
from langchain_hyperbrowser import HyperbrowserLoader
loader = HyperbrowserLoader(
urls="https://example.com",
api_key="YOUR_API_KEY",
)
加载
docs = loader.load()
docs[0]
Document(metadata={'title': 'Example Domain', 'viewport': 'width=device-width, initial-scale=1', 'sourceURL': 'https://example.com'}, page_content='Example Domain\n\n# Example Domain\n\nThis domain is for use in illustrative examples in documents. You may use this\ndomain in literature without prior coordination or asking for permission.\n\n[More information...](https://www.iana.org/domains/example)')
print(docs[0].metadata)
懒加载
page = []
for doc in loader.lazy_load():
page.append(doc)
if len(page) >= 10:
# do some paged operation, e.g.
# index.upsert(page)
page = []
高级用法
您可以指定加载器要执行的操作。默认操作为scrape。对于scrape,您可以提供一个URL或一组URL进行抓取。对于crawl,您只能提供一个URL。crawl操作将抓取提供的页面及其子页面,并为每个页面返回一个文档。
loader = HyperbrowserLoader(
urls="https://hyperbrowser.ai", api_key="YOUR_API_KEY", operation="crawl"
)
加载器的可选参数也可以通过 params 参数提供。有关支持参数的更多信息,请访问 https://docs.hyperbrowser.ai/reference/sdks/python/scrape#start-scrape-job-and-wait 或 https://docs.hyperbrowser.ai/reference/sdks/python/crawl#start-crawl-job-and-wait。
loader = HyperbrowserLoader(
urls="https://example.com",
api_key="YOUR_API_KEY",
operation="scrape",
params={"scrape_options": {"include_tags": ["h1", "h2", "p"]}},
)