如何获取主页URL链接

时间:2016-05-30 14:32:35

标签: java python url

假设我在网页上 https://company.slack.com/messages/@user1/

如何在Java / Python中获取公司/网站主页的URL https://slack.com/ (在这种情况下)

现在这对某些情况来说似乎很容易,但我想概括一下这个&无法覆盖像slack / google_design / etc那样的所有情况......

说类似的案例是:

https://www.youtube.com/watch?v=deL9VeNjcH8

预期输出:https://www.youtube.com

https://angel.co/weav-music?utm_source=lb

预期输出:https://angel.co

https://design.google.com/

预期输出:https://www.google.com

以下链接中的代码:

#include <iostream>
#include <string>

using namespace std;

int main() {
    string s = "https://angel.co/weav-music?utm_source=lb";
    int cnt=0;
    int p;
    int l=s.length();
    for(int i=0;i<l;i++)
        {
            if(s[i]=='/' && cnt!=3)
                cnt++;
            if(s[i]=='/' && cnt==3){
                p=i;break;}
        }
    cout<<s.substr(0,p);
    return 0;
}

@all 请参阅JonasCz关于他自己的回答的第二条评论实际上有所帮助 我

1 个答案:

答案 0 :(得分:1)

您可以使用以下内容:

URL aURL = new URL("https://company.slack.com/messages/@user1/");
System.out.println(aURL.getProtocol() + "://" + aURL.getHost());

打印哪些:

https://company.slack.com

这也适用于其他网址。有关详细信息,请参阅the docs

如果您只想获得没有子域名的主域名(即只有http://slack.com),您可以use Guava's InternetDomainName,例如。像这样:

InternetDomainName.from("company.slack.com").topPrivateDomain().name();

以上内容将返回slack.com

上述方法调用适用于较旧的Guava库版本。对于Guava 19.0,使用 toString()而不是 .name()

要完成,在您的情况下,整个代码将如下所示:

URL aURL = new URL("https://company.slack.com/messages/@user1/");
InternetDomainName.from(aURL.getHost()).topPrivateDomain().name();