Jestem całkiem nowy dla Pythona. Próbuję przeanalizować plik adresów URL, aby pozostawić tylko nazwę domeny.Znajdź http: // i lub www. i usuń z domeny. pozostawiając domenę.com
niektóre adresy URL w moim pliku dziennika zaczynają się od http: //, a niektóre zaczynają się od www.Some zaczynają się od obu.
Jest to część mojego kodu, który usuwa część http: //. Co muszę dodać, aby szukać zarówno http, jak i www. i usunąć oba?
line = re.findall(r'(https?://\S+)', line)
Obecnie, gdy uruchamiam kod, tylko http: // jest usuwany. jeśli zmienię kod na:
line = re.findall(r'(https?://www.\S+)', line)
Dotyczy to tylko domen zaczynających się od obu. Potrzebuję kodu, aby był bardziej warunkowy. TIA
edit ... tu jest moje pełny kod ...
import re
import sys
from urlparse import urlparse
f = open(sys.argv[1], "r")
for line in f.readlines():
line = re.findall(r'(https?://\S+)', line)
if line:
parsed=urlparse(line[0])
print parsed.hostname
f.close()
I mistagged przez pierwotnego stanowiska regex. rzeczywiście używa on urlparse.
Tylko uwaga: Zdajesz sobie sprawę, że 'www.domain.com' jest inna * od *' domain.com', prawej i może wskazywać na szalenie różne adresy IP ? –
Co z domenami 'www.www.com' i' www.com'? – Matthias
Duplikat: http://stackoverflow.com/questions/1521592/get-root-domain-of-link –