检查 URL 是否相对于网站

2024-09-26 21:47:48 发布

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

我有从各种网站的网址大数据框。我想看看它是相对于哪个网站。定义网站的特征是从额外信息中清除的根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或其他方法来实现这一点吗?谢谢你的帮助


Tags: 数据httpshttpurlnet网站wwwru
1条回答
网友
1楼 · 发布于 2024-09-26 21:47:48

您可以在Python2.7中使用urlparse,或在Python3+中使用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处理它,这样您就可以轻松地获取netlocpath。你知道吗

相关问题 更多 >

    热门问题