Если вариант с regex не подходит, то можно разбить каждую строку с помощью urllib.parse и затем собрать обратно, как нужно:
from urllib.parse import urlparse
def parse_domain(line):
scheme, netloc, path, params, query, fragment = urlparse(line)
path = path.split('/', 1)[0].strip('/')
# fix для site.com
if scheme == '' and netloc == '':
netloc = path
if scheme == '':
scheme = 'http'
# в дальнейшем может не сработать, если сайт доступен только по www и не настроен редирект с варианта без www
if netloc.startswith('www.'):
netloc = netloc[4:]
return '{}://{}'.format(scheme, netloc)
Тест:
https://site.com/ -> https://site.com
www.site.com/ -> http://site.com
www.site.com -> http://site.com
site.com -> http://site.com
http://site.com -> http://site.com
site.com/test/ -> http://site.com
site/com/ -> http://site