网络爬虫
概述
网络爬虫是LangChain中的一项关键功能,允许用户自动从互联网上收集信息。这项功能对于研究和数据收集尤其有价值,因为它可以大幅减少手动搜索和信息整理的工作量。
从网络收集内容有几个主要组件:
Search搜索:使用工具如GoogleSearchAPIWrapper查询并获取URL列表。
Loading加载:将URL转换为HTML内容,使用工具如AsyncHtmlLoader或AsyncChromiumLoader。
Transforming转换:将HTML内容转换为格式化文本,使用HTML2Text或BeautifulSoup等工具。
准备
安装相关依赖库
pip install langchain-openai langchain playwright beautifulsoup4
设置OpenAI的BASE_URL、API_Key
import os
os.environ["OPENAI_BASE_URL"] = "https://xxx.com/v1"
os.environ["OPENAI_API_KEY"] = "sk-dtRXRfYzHDZQT8Cr2874xxxx13F97bF24b7a"
加载器
使用Chromium的无头实例爬取HTML内容,无头模式意味着浏览器在没有图形用户界面的情况下运行,这通常用于网页抓取。
主要有2种方式:
方式 | 加载器 | 描述 |
---|---|---|
Python的asyncio库 | AsyncHtmlLoader | 使用该库aiohttp发出异步 HTTP 请求,适合更简单、轻量级的抓取。 |
Playwright | AsyncChromiumLoader | 使用 Playwright 启动 Chromium 实例,该实例可以处理 JavaScript 渲染和更复杂的 Web 交互。 |
注意:
Chromium 是 Playwright 支持的浏览器之一,Playwright 是一个用于控制浏览器自动化的库。
from langchain_community.document_loaders import AsyncChromiumLoader
# 加载HTML
loader = AsyncChromiumLoader(["https://www.langchain.com"])
html = loader.load()
转换
html2text
html2text 是一个 Python 包,它将 HTML 页面转换为干净、易于阅读的纯文本,无需任何特定的标签操作。它最适合目标是提取人类可读文本而不需要操作特定HTML元素的场景。
要使用html2text,首先需要额外安装
pip install html2text
使用示例如下:
from l