检查网址是否相对于网站



我有来自各种网站的网址的大数据帧。我想检查它相对于哪个网站。定义网站的特征是从额外信息中清除其根 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
---------------------
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

对于给定的网址,我试图通过以下方式获取root,但这效果不佳:

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

我可以用正则表达式或其他方式实现这一点吗?感谢任何帮助

您可以在 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 格式(包括端口等(时,正则表达式可能会很丑陋。我让urllib照顾它,以便您可以轻松获取netlocpath.

最新更新