Skip to main content

用于查找 URL 并检查其有效性的库。

项目描述

urlfinderlib

这是一个 Python (3.6+) 库,用于在文档中查找 URL 并检查其有效性。

支持的文件

从以下类型的文档中提取 URL:

  • 二进制文件(在字符串中查找 URL)
  • CSV 文件
  • HTML 文件
  • iCalendar/vCalendar 文件
  • PDF 文件
  • 文本文件(ASCII 或 UTF-8)
  • XML 文件

每个提取的 URL 都经过验证,以使其包含具有有效 TLD(或有效 IP 地址)的域并且不包含任何无效字符。

网址排列

这最初是为了找到恶意行为者使用的有效和混淆或轻微格式错误的 URL,并将它们用作危害指标 (IOC)。因此,提取的 URL 还将包括以下排列:

  • 其域中包含任何 Unicode 字符的 URL
  • 带有任何 Unicode 字符的 URL 转换为其 IDNA 等效项

对于这两种域变体,还返回以下排列:

  • 带有路径 % 编码的 URL
  • URL 及其路径 %-decoded
  • 路径中包含编码 HTML 实体的 URL
  • 路径中包含解码的 HTML 实体的 URL
  • 具有路径 %-decoded 和 HTML 实体已解码的 URL

子 URL

该库还尝试提取或解码在 URL 路径中找到的子 URL。支持以下格式:

  • 梭子鱼保护的 URL
  • 在 URL 的路径中找到 Base64 编码的 URL
  • 谷歌重定向网址
  • Mandrill/Mailchimp 重定向 URL
  • Outlook 安全链接 URL
  • Proofpoint 受保护的 URL
  • 在 URL 的路径查询参数中找到的 URL

基本用法

from urlfinderlib import find_urls

with open('/path/to/file', 'rb') as f:
    print(find_urls(f.read())

base_url 参数

如果您尝试在 HTML 文件中查找 URL,则 URL 中的路径通常与其在托管 HTML 的服务器上的位置相关。在这种情况下,您可以使用base_url参数来提取这些“相对”URL。

from urlfinderlib import find_urls

with open('/path/to/file', 'rb') as f:
    print(find_urls(f.read(), base_url='http://example.com')

发布历史 发布通知| RSS订阅