SAGE 工具文档: URL_Text_Extractor_Tool
¶
工具状态: 可用
版本: 1.0.0 描述: 一个从给定的 URL 中提取所有文本内容的工具。
1. 功能概述¶
URL_Text_Extractor_Tool
是一个网页内容抓取工具,其核心功能是访问一个给定的网页链接,并提取出其中所有可读的文本内容。它利用 requests
库获取网页的 HTML,再通过 BeautifulSoup
解析并提取纯文本,为后续的文本分析任务提供原始素材。
特殊处理: arXiv 链接
该工具内置了一个针对 arXiv 网站的优化:它会自动将指向 PDF 文件的链接 (/pdf/
) 替换为指向摘要页的链接 (/abs/
),因为摘要页的 HTML 格式更易于提取文本。
2. 参数详解¶
该工具通过 execute
方法接收参数来执行文本提取。
输入参数¶
参数名 (Parameter) | 类型 (Type) | 描述 |
---|---|---|
url |
str |
必需。需要提取文本的网页 URL。 |
输出格式¶
execute
方法返回一个字典,包含以下两个键:
键 (Key) | 类型 (Type) | 描述 |
---|---|---|
url |
str |
原始输入的 URL。 |
extracted_text |
str |
从 URL 中提取的文本内容。如果提取过程中发生错误(如网络问题),这里会包含相应的错误信息。提取的文本内容上限为 10,000 个字符。 |
3. 使用示例¶
以下是一些演示如何调用 URL_Text_Extractor_Tool
的示例。
从一个常规网站提取文本。
4. 内部实现逻辑¶
执行流程详解 (点击展开)
execute
方法的逻辑非常直接,主要依赖于其辅助方法 extract_text_from_url
:
- URL 预处理: 首先,检查 URL 是否为 arXiv 的 PDF 链接,如果是,则将其转换为摘要页链接。
- 获取网页内容: 使用
requests.get(url)
发送 HTTP GET 请求来下载网页的 HTML 内容。 - 解析与提取:
- 使用
BeautifulSoup
将获取到的 HTML 内容进行解析。 - 调用
soup.get_text(separator='\n', strip=True)
方法。这个方法会提取出页面中所有的文本节点,并用换行符\n
分隔,同时移除多余的空白。
- 使用
- 内容截断: 为了防止文本内容过长,工具会将提取出的文本截断,只保留前 10,000 个字符。
- 异常处理: 整个过程被包裹在
try...except
块中。- 如果发生
requests.RequestException
(如网络连接失败、DNS 错误、404 Not Found 等),方法会返回一个包含具体网络错误信息的字符串。 - 如果发生其他任何异常(如解析错误),则返回一个通用的错误信息字符串。
- 如果发生
- 结果封装:
execute
方法最后将提取出的文本(或错误信息)与原始 URL 一起封装到一个字典中并返回。
5. 依赖项与要求¶
-
Python 库:
-
requests
: 用于发送 HTTP 请求。 -
beautifulsoup4
: 用于解析 HTML 内容。 -
os
: 用于文件路径操作(在if __name__ == "__main__"
中使用)。
-
-
安装命令:
6. 限制与注意事项¶
重要限制
- 动态内容: 此工具对于使用 JavaScript 动态加载内容的网站(单页应用,SPA)效果不佳,因为它只能获取到初始加载的 HTML 中的文本。
- 文本噪音:
get_text()
会提取页面上所有的文本,包括导航栏、页脚、广告、样式脚本等“噪音”,可能会干扰后续处理。 - 字符限制: 存在 10,000 个字符的硬性限制,对于非常长的文章,内容会被截断。
- 访问限制: 某些网站可能有反爬虫机制,可能会阻止此工具的请求。