2013-07-04 4 views
2

누군가이 라인의 목적을 다음 코드에서 host = parsed.netloc.split('@')[-1].split(':')[0]에게 설명 할 수 있습니까? 나는 우리가 netlock에서 호스트 이름을 얻으려는 것을 이해하지만 나는 왜 우리가 @ 분리 문자로 분리하는지, 그리고 분리 문자로 다시 분리하는지 이해하지 못한다.python에서 urlparse 및 split()을 사용하여 URL을 구문 분석하는 방법은 무엇입니까?

import urlparse 
parsed = urlparse.urlparse('https://www.google.co.uk/search?client=ubuntu&channel=fs') 
print parsed 
host = parsed.netloc.split('@')[-1].split(':')[0] 
print host 


Result: 

ParseResult(scheme='https', netloc='www.google.co.uk', path='/search', params='', query='client=ubuntu&channel=fs, fragment='') 

www.google.co.uk 

하나가 바로 도메인을 필요로하는 경우 확실히, 우리가 얻을 수에서 HTTP 인증 자격 증명 및 포트 번호 가질 수는 전체 형태

답변

3

Netloc urlparse.netloc :

login:[email protected]:80 

참조 RFC1808RFC1738

우리는 잠재적으로 이것을 ["login:password", "www.google.co.uk:80"]으로 나눠야하고, 마지막 부분을 취해 ["www.google.co.uk", "80"]을 입력하고 호스트 이름을 사용하십시오.

이 부분을 생략하면 존재하지 않는 구분 기호를 분리하려고해도 아무런 해가 없습니다. 생략되지 않았는지 확인하지 않아도됩니다.

urlparse documentation

+0

감사합니다. 그건 설명해. – masterpiece