【问题标题】:How to extract website name from host name [duplicate]如何从主机名中提取网站名称[重复]
【发布时间】:2021-01-28 16:16:36
【问题描述】:

我正在尝试从主机 url 获取网站名称(例如“www.google.com”-> google、“facebook.com”-> facebook) 目前我有这个简单的功能:

   private fun getWebsiteNameFromUri(host: String): String {
        val cutString = host.substringBefore(".")
        
        return cutString.substringAfter(".")
    }

它对许多网站都没有坏处,但当然还有很多其他网站不能正常工作,例如:“medium.com”只是返回 com

我也尝试过计数“.”和其他方法,但同样适用于某些人而对其他人不起作用。

提取这样的东西有什么约定吗? 如果没有,我该如何提取网站名称,重正则表达式是唯一的选择?

【问题讨论】:

  • 我不是网络开发人员,所以我对所有可能的情况都不是很熟悉,但不应该是定义网站名称的明确方式吗?如果我以你的例子为例。 domain 是名称,.google 是扩展名,不是吗?顺便说一句,我考虑过使用jsoup 直接通过html 获取标题/网站,但似乎许多网站的标题/缺少名称部分@AdamMillerchip

标签: android kotlin web


【解决方案1】:

也许尝试将您的链接放在URL 类中

URL url = new URL(address);

然后你可以使用

String host = url.getHost();

lot of other methods

编辑:这个问题看起来像duplicate...

【讨论】:

  • 函数调用url.getHost后得到的主机,返回的是完整的主机路径(www.google.com)
  • 我认为这实际上是最好的主意,但如果你传递一个String mediumCom = "medium.com";,由于缺少协议,这将抛出一个MalformedURLException。如果可以确定会有一个协议,URL 绝对是一个不错的选择。
  • @ScrapeW 这样做可以缩小手动处理的案例范围。
  • 查看我的编辑并将同一个问题与多个答案相关联
猜你喜欢
  • 1970-01-01
  • 2014-02-09
  • 2015-04-19
  • 2021-02-05
  • 2010-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多