我有来自各个网站的大型网址数据框。我想查看它相对于哪个网站。定义网站的特征是从其他信息中清除其根网址(例如,对于http://www.agpu.net/
根网址将为agpu.net
所以主要目标是找到给定URL的根目录。例如,http://www.mordgpi.ru/
应该是标记mordgpi.ru
但不是gpi.ru
。此外,这不应仅适用于根网页网址,例如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]
我可以用regexp或其他方式实现这一目标吗?感谢任何帮助
答案 0 :(得分:2)
您可以在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
的原因是因为当你有很长的查询字符串和高级网址格式(包括端口等)时,正则表达式可能会很难看。我让urllib
处理它,以便您可以轻松地抓取netloc
和path
。