从给定文本中收集和提取URL。
项目描述
URLExtract是Python类,用于基于定位TLD从给定文本中收集(提取)URL。
它是如何工作的
它尝试在给定文本中找到任何TLD的出现。如果找到TLD,它将从该位置开始扩展边界,向两侧搜索“停止字符”(通常是空白、逗号、单引号或双引号)。
有一个DNS检查选项,也可以拒绝无效的域名。
注意:TLD列表从iana.org下载,以保持您对新TLD的更新。
安装
该软件包可在PyPI上找到 - 您可以通过pip进行安装。
pip install urlextract
文档
要求
IDNA将链接转换为IDNA格式
uritools用于域名验证
platformdirs用于确定用户的缓存目录
dnspython用于缓存DNS结果
pip install idna pip install uritools pip install platformdirs pip install dnspython
或者您可以使用 requirements.txt 安装依赖项
pip install -r requirements.txt
运行 tox
安装 tox
pip install tox
然后运行它
tox
示例
您可以在 urlextract.py 的末尾查看命令行程序。但您需要知道的是这个
from urlextract import URLExtract
extractor = URLExtract()
urls = extractor.find_urls("Text with URLs. Let's have URL janlipovsky.cz as an example.")
print(urls) # prints: ['janlipovsky.cz']
或者您可以通过以下方式获取文本中的 URL 生成器
from urlextract import URLExtract
extractor = URLExtract()
example_text = "Text with URLs. Let's have URL janlipovsky.cz as an example."
for url in extractor.gen_urls(example_text):
print(url) # prints: ['janlipovsky.cz']
或者,如果您只想检查至少有一个 URL,您可以这样做
from urlextract import URLExtract
extractor = URLExtract()
example_text = "Text with URLs. Let's have URL janlipovsky.cz as an example."
if extractor.has_urls(example_text):
print("Given text contains some URL")
如果您想获得最新的 TLD 列表,可以使用 update()
from urlextract import URLExtract
extractor = URLExtract()
extractor.update()
或者 update_when_older() 方法
from urlextract import URLExtract
extractor = URLExtract()
extractor.update_when_older(7) # updates when list is older that 7 days
已知问题
由于 TLD 可以不仅是缩写,还可以是一些有意义的词,因此在我们搜索某些 HTML 页面中的 URL 时可能会看到“错误匹配”。例如,当您使用其类引用 HTML 项目时,在 CSS 或 JS 中可能会发生错误匹配。
示例 HTML 代码
<p class="bold name">Jan</p>
<style>
p.bold.name {
font-weight: bold;
}
</style>
如果这个 HTML 片段是 urlextract.find_urls() 的输入,它将返回 p.bold.name 作为 URL。urlextract 的行为是正确的,因为 .name 是有效的 TLD,urlextract 只看到存在一个有效的域名 bold.name,而 p 是有效的子域。
许可证
此代码受 MIT 许可证许可。
项目详情
下载文件
下载适合您平台的文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。
源分发
构建分发
urlextract-1.9.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 70508e02ba9df372e25cf0642db367cece273e8712cd0ce78178fc5dd7ea00db |
|
MD5 | 4b9a1aed62870797e74bc6c1aa4b83c7 |
|
BLAKE2b-256 | e11d57a552551f851c6db5e5d66f505548d47dd3f734a8e648f9d4f05e4e5ac9 |