从给定文本中收集和提取URL。

urlextract的Python项目详细描述


urlextract是一个python类,用于从给定的 基于定位tld的文本。

Build StatusGit tagPython Version Compatibility

它是如何工作的

它试图在给定的文本中找到tld的任何出现。如果找到TLD 从那个位置开始扩展边界到两边搜索 用于“停止字符”(通常为空白、逗号、单字符或双字符 引用)。

注意:TLD列表是从iana.org下载的,以使您随时了解最新的TLD。

安装

软件包在pypi上可用-您可以通过pip安装它。

https://img.shields.io/pypi/v/urlextract.svghttps://img.shields.io/pypi/status/urlextract.svg
pip install urlextract

文档

在线文档发布在http://urlextract.readthedocs.io/

要求

  • 用于将链接转换为IDNA格式的IDNA

  • 用于域名验证的uritools

  • 用于确定用户缓存目录的appdirs

    pip install idna
    pip install uritools
    pip install appdirs
    

示例

您可以在urlextract.py末尾查看命令行程序。 但你需要知道的是:

fromurlextractimportURLExtractextractor=URLExtract()urls=extractor.find_urls("Text with URLs. Let's have URL janlipovsky.cz as an example.")print(urls)# prints: ['janlipovsky.cz']

或者您可以通过以下方式获得文本中URL上的生成器:

fromurlextractimportURLExtractextractor=URLExtract()example_text="Text with URLs. Let's have URL janlipovsky.cz as an example."forurlinextractor.gen_urls(example_text):print(url)# prints: ['janlipovsky.cz']

或者,如果您只想检查是否至少有一个URL,您可以这样做:

fromurlextractimportURLExtractextractor=URLExtract()example_text="Text with URLs. Let's have URL janlipovsky.cz as an example."ifextractor.has_urls(example_text):print("Given text contains some URL")

如果您想要最新的tld列表,可以使用update()

fromurlextractimportURLExtractextractor=URLExtract()extractor.update()

或者update_when_older()方法:

fromurlextractimportURLExtractextractor=URLExtract()extractor.update_when_older(7)# updates when list is older that 7 days

已知问题

因为tld不仅是快捷方式,而且是一些有意义的词,所以当我们搜索时可能会看到“错误匹配” 一些html页面中的url。例如,当您引用HTML项时,在CSS或JS中可能会出现错误匹配 使用它的类。

HTML代码示例:

<pclass="bold name">Jan</p><style>p.bold.name{font-weight:bold;}</style>

如果这个html片段在urlextract.find_urls()的输入上,它将以url的形式返回p.bold.name。 urlExtract的行为是正确的,因为.name是有效的tld,而urlExtract只看到有bold.name 有效的域名和p是有效的子域。

许可证

这段代码是根据麻省理工学院的许可证授权的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
两个日期之间的datetime Java HashMap筛选器   java会选择以下选项吗:django+smartGWT似乎是一个不错的选择?   java如何在jsp中显示Json对象   从Java代码调用装入点文件路径   接口中的java JPA Hibernate更新查询   java在从jsp调用时从类获取根目录   java JFileChooser在JTextField中显示多个选定文件   在Springbean基类中定义的方法中使用@Retryable的java不会被重试   java StackOverflower错误和等于疯狂数字的值   swing使Java打印的页边距更小   java使用Matisse GUI builder设置最大宽度   带MySQL的java注册表单JavaFX在intellij中失败   java监听音量按钮事件安卓   java正在寻找一个新的应用程序。NET 3.5/J2EE体系结构概念比较文章/图表   java如何使用SpringJDBC检索记录   java MULE ESB:带有regex()函数的表达式过滤器   java JFrame按钮逻辑错误   java Android SQLite在Date1和Date2之间选择   java求解丢番图方程