Python 检查url是否与网站相关

Python 检查url是否与网站相关,python,regex,pandas,http,url,Python,Regex,Pandas,Http,Url,我有来自不同网站的URL的大数据框架。我想检查它是相对于哪个网站。定义网站的特征是从额外信息中清除其根url(例如,http://www.agpu.net/根url将是agpu.net 因此,主要目标是找到给定url与哪个根相关http://www.mordgpi.ru/应获取标记mordgpi.ru,但不应获取gpi.ru。此外,这不应仅适用于根网页url,例如https://www.mordgpi.ru/our-life/news/46/55116/ URL的数据集如下所示: url ---

我有来自不同网站的URL的大数据框架。我想检查它是相对于哪个网站。定义网站的特征是从额外信息中清除其根url(例如,
http://www.agpu.net/
根url将是
agpu.net

因此,主要目标是找到给定url与哪个根相关http://www.mordgpi.ru/应获取标记
mordgpi.ru
,但不应获取
gpi.ru
。此外,这不应仅适用于根网页url,例如
https://www.mordgpi.ru/our-life/news/46/55116/

URL的数据集如下所示:

url
---------------------
http://pnu.edu.ru/ru/
https://www.dvfu.ru/
http://donstu.ru/
http://www.elsu.ru/
http://ivgpu.com/
http://ivanovo.ac.ru/
http://www.isuct.ru/  
对于根:

root
-------------
pnu.edu.ru/ru
dvfu.ru
donstu.ru
elsu.ru
ivgpu.com
ivanovo.ac.ru
isuct.ru
对于给定的url,我尝试按以下方式获取根目录,但效果不好:

root = roots['root'].str.lower().apply(lambda x: x in url).to_frame()
root = root[root.root]

我可以通过regexp或其他方式实现这一点吗?感谢您提供的帮助,您可以在python 2.7中使用
urlparse
,或者在python 3+中使用
urllib.urlparse
,以实现以下目的:

from urllib import parse
split = parse.urlsplit(url)
netloc = split.netloc
path = split.path
if netloc.startswith('www.'):
    netloc = netloc[4:]
print(netloc + path.rstrip('/'))
通过所有测试用例


我之所以使用
urllib
,是因为当您有长查询字符串和高级url格式(包括端口等)时,regex可能很难看。我让
urllib
来处理它,这样你就可以很容易地获取
netloc
路径

这个站点pnu.edu.ru/ru似乎与其他站点有不同的结构,因为它的末尾有额外的'/ru',所以它将遵循一个单独的约定?@Turo我想对于
\u root\uu
应该有一些ru像http(s):/(www.)\u root(/)(\u smth\u else)->
\u root\u
我只想注意,在第一个示例中,你称之为root的结构与剩下的6个不同。因此,这将是两种不同的正则表达式方法。对于像
ac.ru
这样的TLD,只有当你有一个al列表时,才没有规则使用文本处理工具来区分第一部分和域名降低TLD。