如何获取主页URL lin

2024-10-02 20:41:52 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

对于某些情况来说,这似乎很简单,但我想概括一下,这并不能涵盖slack/google_design等的所有案例。。。。在

假设类似的情况是:

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;
}

@全部 请看乔纳斯茨对他自己的答案的第二条评论,这确实有帮助 我


Tags: httpscomyoutubewwwgooglemusic情况slack
1条回答
网友
1楼 · 发布于 2024-10-02 20:41:52

你可以用这样的方法:

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

哪个打印:

^{pr2}$

这也适用于其他网址。有关详细信息,请参见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();

相关问题 更多 >