Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
1584 lines (1570 sloc) 23.2 KB
from urlparse import urlparse
def parse_domain(url, levels=2):
"""
Given a URL or hostname, returns the domain to the given level (level 1 is the top-level domain).
Uses a list of active top-level domains to ensure long TLD's such as ".co.uk" are correctly treated as a single TLD.
If the domain has an unrecognizable TLD, assumes it is one level.
"""
if levels < 1 or not url:
return None
# Parse the hostname from the url
parsed = urlparse(url)
hostname = getattr(parsed,'netloc',url)
partial_domains = []
partial_domain = ""
for section in reversed(hostname.split(".")):
partial_domain = "." + section + partial_domain
partial_domains.append(partial_domain)
# Find the longest matching TLD, recording its index
tld_idx = 0
for idx, item in enumerate(partial_domains):
if item in tlds:
tld_idx = idx
# Add the desired number of levels to the tld index,
# counting the TLD itself as the first level
try:
domain = partial_domains[tld_idx + levels - 1]
except IndexError:
domain = partial_domains[-1]
# Remove the initial dot
return domain[1:]
tlds = set((
'.2000.hu',
'.ab.ca',
'.ab.se',
'.abo.pa',
'.ac',
'.ac.ae',
'.ac.at',
'.ac.be',
'.ac.cn',
'.ac.com',
'.ac.cr',
'.ac.cy',
'.ac.fj',
'.ac.fk',
'.ac.gn',
'.ac.id',
'.ac.il',
'.ac.im',
'.ac.in',
'.ac.ir',
'.ac.jp',
'.ac.mw',
'.ac.nz',
'.ac.pa',
'.ac.ru',
'.ac.rw',
'.ac.se',
'.ac.th',
'.ac.tj',
'.ac.tz',
'.ac.ug',
'.ac.uk',
'.ac.vn',
'.ac.yu',
'.ac.za',
'.ac.zm',
'.ac.zw',
'.ad',
'.ad.jp',
'.adm.br',
'.adult.ht',
'.adv.br',
'.ae',
'.aero',
'.aero.mv',
'.af',
'.ag',
'.agr.br',
'.agrar.hu',
'.ah.cn',
'.ai',
'.aichi.jp',
'.ak.us',
'.akita.jp',
'.al',
'.al.us',
'.alt.za',
'.am',
'.am.br',
'.an',
'.ao',
'.aomori.jp',
'.aq',
'.ar',
'.ar.us',
'.army.mil',
'.arpa',
'.arq.br',
'.art.br',
'.art.do',
'.art.dz',
'.art.ht',
'.art.pl',
'.as',
'.asn.au',
'.asn.lv',
'.assn.lk',
'.asso.dz',
'.asso.fr',
'.asso.ht',
'.asso.mc',
'.at',
'.ato.br',
'.au',
'.av.tr',
'.aw',
'.az',
'.az.us',
'.ba',
'.bb',
'.bbs.tr',
'.bc.ca',
'.bd',
'.bd.se',
'.be',
'.bel.tr',
'.bf',
'.bg',
'.bh',
'.bi',
'.bialystok.pl',
'.bio.br',
'.biz',
'.biz.cy',
'.biz.et',
'.biz.fj',
'.biz.mv',
'.biz.nr',
'.biz.om',
'.biz.pk',
'.biz.pl',
'.biz.pr',
'.biz.tj',
'.biz.tr',
'.biz.tt',
'.biz.vn',
'.bj',
'.bj.cn',
'.bl.uk',
'.bm',
'.bmd.br',
'.bn',
'.bo',
'.bolt.hu',
'.br',
'.bs',
'.bt',
'.bv',
'.bw',
'.by',
'.bz',
'.c.se',
'.ca',
'.ca',
'.ca.us',
'.casino.hu',
'.cat',
'.cc',
'.cd',
'.cd',
'.cf',
'.cg',
'.ch',
'.ch',
'.cherkassy.ua',
'.chernigov.ua',
'.chernovtsy.ua',
'.chiba.jp',
'.ci',
'.cim.br',
'.city.hu',
'.city.za',
'.ck',
'.ck.ua',
'.cl',
'.club.tw',
'.cm',
'.cn',
'.cn',
'.cn.ua',
'.cng.br',
'.cnt.br',
'.co',
'.co.ae',
'.co.ag',
'.co.at',
'.co.bw',
'.co.ck',
'.co.cr',
'.co.fk',
'.co.gg',
'.co.hu',
'.co.id',
'.co.il',
'.co.im',
'.co.in',
'.co.ir',
'.co.je',
'.co.jp',
'.co.kr',
'.co.ls',
'.co.ma',
'.co.mu',
'.co.mw',
'.co.nz',
'.co.om',
'.co.rw',
'.co.th',
'.co.tj',
'.co.tt',
'.co.tz',
'.co.ug',
'.co.uk',
'.co.us',
'.co.ve',
'.co.yu',
'.co.za',
'.co.zm',
'.co.zw',
'.com',
'.com.ac',
'.com.ag',
'.com.ai',
'.com.al',
'.com.am',
'.com.ar',
'.com.au',
'.com.aw',
'.com.az',
'.com.bb',
'.com.bd',
'.com.bm',
'.com.bn',
'.com.bo',
'.com.br',
'.com.bs',
'.com.bt',
'.com.cd',
'.com.ch',
'.com.cn',
'.com.co',
'.com.cu',
'.com.cy',
'.com.dm',
'.com.do',
'.com.dz',
'.com.ec',
'.com.ee',
'.com.eg',
'.com.es',
'.com.et',
'.com.fj',
'.com.fr',
'.com.ge',
'.com.gh',
'.com.gi',
'.com.gn',
'.com.gr',
'.com.hk',
'.com.hn',
'.com.hr',
'.com.ht',
'.com.jm',
'.com.jo',
'.com.kh',
'.com.kw',
'.com.ky',
'.com.kz',
'.com.lb',
'.com.lc',
'.com.li',
'.com.lk',
'.com.lr',
'.com.lv',
'.com.ly',
'.com.mg',
'.com.mk',
'.com.mo',
'.com.mt',
'.com.mu',
'.com.mv',
'.com.mw',
'.com.mx',
'.com.my',
'.com.ng',
'.com.ni',
'.com.np',
'.com.nr',
'.com.om',
'.com.pa',
'.com.pe',
'.com.pf',
'.com.pg',
'.com.ph',
'.com.pk',
'.com.pl',
'.com.pr',
'.com.ps',
'.com.pt',
'.com.py',
'.com.ru',
'.com.rw',
'.com.sa',
'.com.sb',
'.com.sc',
'.com.sd',
'.com.sg',
'.com.sv',
'.com.sy',
'.com.tj',
'.com.tn',
'.com.tr',
'.com.tt',
'.com.tw',
'.com.ua',
'.com.uy',
'.com.ve',
'.com.vi',
'.com.vn',
'.com.ye',
'.conf.lv',
'.coop',
'.coop.br',
'.coop.ht',
'.coop.mv',
'.coop.mw',
'.cpa.pro',
'.cq.cn',
'.cr',
'.cri.nz',
'.crimea.ua',
'.csiro.au',
'.ct.us',
'.cu',
'.cu',
'.cv',
'.cv.ua',
'.cx',
'.cx',
'.cy',
'.cz',
'.d.se',
'.dc.us',
'.de',
'.de.us',
'.dj',
'.dk',
'.dm',
'.dm',
'.dn.ua',
'.dnepropetrovsk.ua',
'.dni.us',
'.do',
'.donetsk.ua',
'.dp.ua',
'.dpn.br',
'.dr.tr',
'.dz',
'.dz',
'.e.se',
'.e164.arpa',
'.ebiz.tw',
'.ec',
'.ec',
'.ecn.br',
'.ed.cr',
'.ed.jp',
'.edu',
'.edu.ac',
'.edu.al',
'.edu.au',
'.edu.bb',
'.edu.bd',
'.edu.bm',
'.edu.bn',
'.edu.bo',
'.edu.br',
'.edu.bt',
'.edu.cn',
'.edu.co',
'.edu.cu',
'.edu.dm',
'.edu.do',
'.edu.dz',
'.edu.ec',
'.edu.eg',
'.edu.es',
'.edu.et',
'.edu.ge',
'.edu.gh',
'.edu.gi',
'.edu.gr',
'.edu.hk',
'.edu.hn',
'.edu.ht',
'.edu.in',
'.edu.jm',
'.edu.jo',
'.edu.kh',
'.edu.kw',
'.edu.ky',
'.edu.kz',
'.edu.lb',
'.edu.lc',
'.edu.lk',
'.edu.lr',
'.edu.lv',
'.edu.ly',
'.edu.mg',
'.edu.mo',
'.edu.mt',
'.edu.mv',
'.edu.mw',
'.edu.mx',
'.edu.my',
'.edu.ng',
'.edu.ni',
'.edu.np',
'.edu.nr',
'.edu.om',
'.edu.pa',
'.edu.pe',
'.edu.pf',
'.edu.pk',
'.edu.pl',
'.edu.pr',
'.edu.ps',
'.edu.pt',
'.edu.py',
'.edu.rw',
'.edu.sa',
'.edu.sb',
'.edu.sc',
'.edu.sd',
'.edu.sg',
'.edu.sv',
'.edu.tj',
'.edu.tr',
'.edu.tt',
'.edu.tw',
'.edu.ua',
'.edu.uy',
'.edu.vi',
'.edu.vn',
'.edu.yu',
'.edu.za',
'.ee',
'.ee',
'.eg',
'.ehime.jp',
'.ekloges.cy',
'.eng.br',
'.ens.tn',
'.er',
'.erotica.hu',
'.erotika.hu',
'.es',
'.es',
'.esp.br',
'.et',
'.etc.br',
'.eti.br',
'.eu',
'.eun.eg',
'.f.se',
'.fam.pk',
'.far.br',
'.fed.us',
'.fhs.no',
'.fi',
'.fi.cr',
'.fie.ee',
'.film.hu',
'.fin.ec',
'.fin.tn',
'.firm.ht',
'.firm.in',
'.fj',
'.fj.cn',
'.fk',
'.fl.us',
'.fm',
'.fm.br',
'.fnd.br',
'.fo',
'.folkebibl.no',
'.forum.hu',
'.fot.br',
'.fr',
'.fr',
'.from.hr',
'.fst.br',
'.fukui.jp',
'.fukuoka.jp',
'.fukushima.jp',
'.fylkesbibl.no',
'.g.se',
'.g12.br',
'.ga',
'.ga.us',
'.game.tw',
'.games.hu',
'.gb',
'.gd',
'.gd.cn',
'.gda.pl',
'.gdansk.pl',
'.ge',
'.ge',
'.geek.nz',
'.gen.in',
'.gen.nz',
'.gen.tr',
'.gf',
'.gg',
'.gg',
'.ggf.br',
'.gh',
'.gi',
'.gi',
'.gifu.jp',
'.gl',
'.gm',
'.go.cr',
'.go.id',
'.go.jp',
'.go.th',
'.go.tj',
'.go.tz',
'.go.ug',
'.gob.bo',
'.gob.do',
'.gob.es',
'.gob.hn',
'.gob.mx',
'.gob.ni',
'.gob.pa',
'.gob.pe',
'.gob.pk',
'.gob.sv',
'.gok.pk',
'.gon.pk',
'.gop.pk',
'.gos.pk',
'.gouv.fr',
'.gouv.ht',
'.gouv.rw',
'.gov',
'.gov.ac',
'.gov.ae',
'.gov.al',
'.gov.au',
'.gov.bb',
'.gov.bd',
'.gov.bf',
'.gov.bm',
'.gov.bo',
'.gov.br',
'.gov.bt',
'.gov.by',
'.gov.ch',
'.gov.cn',
'.gov.co',
'.gov.cu',
'.gov.cx',
'.gov.dm',
'.gov.do',
'.gov.dz',
'.gov.ec',
'.gov.eg',
'.gov.et',
'.gov.fj',
'.gov.fk',
'.gov.ge',
'.gov.gh',
'.gov.gi',
'.gov.gn',
'.gov.gr',
'.gov.hk',
'.gov.ie',
'.gov.il',
'.gov.im',
'.gov.in',
'.gov.ir',
'.gov.it',
'.gov.jm',
'.gov.jo',
'.gov.kh',
'.gov.kw',
'.gov.ky',
'.gov.kz',
'.gov.lb',
'.gov.lc',
'.gov.li',
'.gov.lk',
'.gov.lr',
'.gov.lt',
'.gov.lu',
'.gov.lv',
'.gov.ly',
'.gov.ma',
'.gov.mg',
'.gov.mo',
'.gov.mt',
'.gov.mv',
'.gov.mw',
'.gov.my',
'.gov.ng',
'.gov.np',
'.gov.nr',
'.gov.om',
'.gov.ph',
'.gov.pk',
'.gov.pl',
'.gov.pr',
'.gov.ps',
'.gov.pt',
'.gov.py',
'.gov.rw',
'.gov.sa',
'.gov.sb',
'.gov.sc',
'.gov.sd',
'.gov.sg',
'.gov.sy',
'.gov.tj',
'.gov.tn',
'.gov.to',
'.gov.tp',
'.gov.tr',
'.gov.tt',
'.gov.tv',
'.gov.tw',
'.gov.ua',
'.gov.uk',
'.gov.vi',
'.gov.vn',
'.gov.za',
'.gov.zm',
'.gov.zw',
'.govt.nz',
'.gp',
'.gq',
'.gr',
'.gr',
'.gr.jp',
'.grp.lk',
'.gs',
'.gs.cn',
'.gt',
'.gu',
'.gub.uy',
'.gunma.jp',
'.gv.at',
'.gw',
'.gx.cn',
'.gy',
'.gz.cn',
'.h.se',
'.ha.cn',
'.hb.cn',
'.he.cn',
'.health.vn',
'.herad.no',
'.hi.cn',
'.hi.us',
'.hiroshima.jp',
'.hk',
'.hk',
'.hl.cn',
'.hm',
'.hn',
'.hn',
'.hn.cn',
'.hokkaido.jp',
'.hotel.hu',
'.hotel.lk',
'.hr',
'.hr',
'.ht',
'.ht',
'.hu',
'.hu',
'.hyogo.jp',
'.i.se',
'.ia.us',
'.ibaraki.jp',
'.icnet.uk',
'.id',
'.id.au',
'.id.lv',
'.id.ly',
'.id.us',
'.idf.il',
'.idn.sg',
'.idrett.no',
'.idv.hk',
'.idv.tw',
'.ie',
'.ie',
'.if.ua',
'.il',
'.il.us',
'.im',
'.imb.br',
'.in',
'.in',
'.in.th',
'.in.us',
'.ind.br',
'.ind.in',
'.ind.tn',
'.inf.br',
'.inf.cu',
'.info',
'.info.cy',
'.info.ec',
'.info.et',
'.info.fj',
'.info.ht',
'.info.hu',
'.info.mv',
'.info.nr',
'.info.pl',
'.info.pr',
'.info.sd',
'.info.tn',
'.info.tr',
'.info.tt',
'.info.ve',
'.info.vn',
'.ing.pa',
'.ingatlan.hu',
'.int',
'.int.bo',
'.int.lk',
'.int.mv',
'.int.mw',
'.int.pt',
'.int.ru',
'.int.rw',
'.int.tj',
'.int.vn',
'.intl.tn',
'.io',
'.ip6.arpa',
'.iq',
'.ir',
'.ir',
'.is',
'.isa.us',
'.ishikawa.jp',
'.isla.pr',
'.it',
'.it',
'.iwate.jp',
'.iwi.nz',
'.iz.hr',
'.je',
'.je',
'.jet.uk',
'.jl.cn',
'.jm',
'.jo',
'.jo',
'.jobs',
'.jogasz.hu',
'.jor.br',
'.jp',
'.jp',
'.js.cn',
'.jx.cn',
'.k.se',
'.k12.il',
'.k12.tr',
'.kagawa.jp',
'.kagoshima.jp',
'.kanagawa.jp',
'.kawasaki.jp',
'.ke',
'.kg',
'.kh',
'.kh.ua',
'.kharkov.ua',
'.kherson.ua',
'.khmelnitskiy.ua',
'.ki',
'.kids.us',
'.kiev.ua',
'.kirovograd.ua',
'.kitakyushu.jp',
'.km',
'.km.ua',
'.kn',
'.kobe.jp',
'.kochi.jp',
'.kommune.no',
'.konyvelo.hu',
'.kr',
'.kr',
'.kr.ua',
'.krakow.pl',
'.ks.ua',
'.ks.us',
'.kumamoto.jp',
'.kv.ua',
'.kw',
'.ky',
'.ky',
'.ky.us',
'.kyoto.jp',
'.kz',
'.la',
'.la.us',
'.lakas.hu',
'.law.pro',
'.law.za',
'.lb',
'.lc',
'.lel.br',
'.lg.jp',
'.lg.ua',
'.li',
'.li',
'.lk',
'.lk',
'.ln.cn',
'.lodz.pl',
'.lr',
'.ls',
'.lt',
'.lt',
'.ltd.cy',
'.ltd.gi',
'.ltd.lk',
'.ltd.uk',
'.lu',
'.lu',
'.lublin.pl',
'.lugansk.ua',
'.lutsk.ua',
'.lv',
'.lv',
'.lviv.ua',
'.ly',
'.ly',
'.m.se',
'.ma',
'.ma',
'.ma.us',
'.maori.nz',
'.mat.br',
'.mb.ca',
'.mc',
'.mc',
'.md',
'.md.us',
'.me.uk',
'.me.us',
'.med.br',
'.med.ec',
'.med.ht',
'.med.ly',
'.med.om',
'.med.pa',
'.med.pro',
'.med.sa',
'.med.sd',
'.media.hu',
'.mg',
'.mg',
'.mh',
'.mi.th',
'.mi.us',
'.mie.jp',
'.mil',
'.mil.ac',
'.mil.ae',
'.mil.be',
'.mil.bo',
'.mil.br',
'.mil.by',
'.mil.co',
'.mil.do',
'.mil.ec',
'.mil.eg',
'.mil.fj',
'.mil.ge',
'.mil.gh',
'.mil.hn',
'.mil.in',
'.mil.jo',
'.mil.kh',
'.mil.kw',
'.mil.kz',
'.mil.lt',
'.mil.lu',
'.mil.lv',
'.mil.mg',
'.mil.mv',
'.mil.my',
'.mil.no',
'.mil.np',
'.mil.nz',
'.mil.om',
'.mil.pe',
'.mil.pl',
'.mil.rw',
'.mil.tj',
'.mil.tr',
'.mil.tw',
'.mil.uk',
'.mil.uy',
'.mil.za',
'.miyagi.jp',
'.miyazaki.jp',
'.mk',
'.mk',
'.mk.ua',
'.ml',
'.mm',
'.mn',
'.mn.us',
'.mo',
'.mo',
'.mo.us',
'.mobi',
'.mod.gi',
'.mod.uk',
'.mp',
'.mq',
'.mr',
'.ms',
'.ms.us',
'.msk.ru',
'.mt',
'.mt',
'.mt.us',
'.mu',
'.mu',
'.muni.il',
'.mus.br',
'.museum',
'.museum.mv',
'.museum.mw',
'.museum.no',
'.museum.om',
'.music.mobi',
'.mv',
'.mw',
'.n.se',
'.na',
'.nagano.jp',
'.nagasaki.jp',
'.nagoya.jp',
'.name',
'.name.ae',
'.name.cy',
'.name.et',
'.name.fj',
'.name.hr',
'.name.mv',
'.name.my',
'.name.pr',
'.name.tj',
'.name.tr',
'.name.tt',
'.name.vn',
'.nara.jp',
'.nat.tn',
'.navy.mil',
'.nb.ca',
'.nc',
'.nc.us',
'.nd.us',
'.ne',
'.ne.jp',
'.ne.tz',
'.ne.ug',
'.ne.us',
'.nel.uk',
'.net',
'.net.ac',
'.net.ae',
'.net.ag',
'.net.ai',
'.net.al',
'.net.am',
'.net.ar',
'.net.au',
'.net.az',
'.net.bb',
'.net.bd',
'.net.bm',
'.net.bn',
'.net.bo',
'.net.br',
'.net.bs',
'.net.bt',
'.net.cd',
'.net.ch',
'.net.cn',
'.net.co',
'.net.cu',
'.net.cy',
'.net.dm',
'.net.do',
'.net.dz',
'.net.ec',
'.net.eg',
'.net.et',
'.net.fj',
'.net.fk',
'.net.ge',
'.net.gg',
'.net.gn',
'.net.gr',
'.net.hk',
'.net.hn',
'.net.ht',
'.net.il',
'.net.im',
'.net.in',
'.net.ir',
'.net.je',
'.net.jm',
'.net.jo',
'.net.kh',
'.net.kw',
'.net.ky',
'.net.kz',
'.net.lb',
'.net.li',
'.net.lk',
'.net.lr',
'.net.lu',
'.net.lv',
'.net.ly',
'.net.ma',
'.net.mo',
'.net.mt',
'.net.mv',
'.net.mw',
'.net.mx',
'.net.my',
'.net.ng',
'.net.ni',
'.net.np',
'.net.nr',
'.net.nz',
'.net.om',
'.net.pa',
'.net.pe',
'.net.pg',
'.net.pk',
'.net.pl',
'.net.pr',
'.net.ps',
'.net.pt',
'.net.py',
'.net.ru',
'.net.rw',
'.net.sa',
'.net.sb',
'.net.sc',
'.net.sd',
'.net.sg',
'.net.sy',
'.net.th',
'.net.tj',
'.net.tn',
'.net.tr',
'.net.tt',
'.net.tw',
'.net.ua',
'.net.uk',
'.net.uy',
'.net.ve',
'.net.vn',
'.net.ye',
'.net.za',
'.news.hu',
'.nf',
'.nf.ca',
'.ng',
'.ngo.lk',
'.ngo.pl',
'.ngo.za',
'.nh.us',
'.nhs.uk',
'.ni',
'.nic.im',
'.nic.in',
'.nic.uk',
'.niigata.jp',
'.nikolaev.ua',
'.nj.us',
'.nl',
'.nl',
'.nl.ca',
'.nls.uk',
'.nm.cn',
'.nm.us',
'.no',
'.no',
'.nom.ad',
'.nom.ag',
'.nom.br',
'.nom.co',
'.nom.es',
'.nom.fk',
'.nom.fr',
'.nom.mg',
'.nom.ni',
'.nom.pa',
'.nom.pe',
'.nom.za',
'.nome.pt',
'.not.br',
'.np',
'.nr',
'.nr',
'.nr',
'.ns.ca',
'.nsn.us',
'.nt.ca',
'.ntr.br',
'.nu',
'.nu.ca',
'.nv.us',
'.nx.cn',
'.ny.us',
'.nz',
'.o.se',
'.od.ua',
'.odessa.ua',
'.odo.br',
'.off.ai',
'.oh.us',
'.oita.jp',
'.ok.us',
'.okayama.jp',
'.okinawa.jp',
'.olsztyn.pl',
'.om',
'.on.ca',
'.or.at',
'.or.cr',
'.or.id',
'.or.jp',
'.or.kr',
'.or.th',
'.or.tz',
'.or.ug',
'.or.us',
'.org',
'.org.ac',
'.org.ae',
'.org.ag',
'.org.ai',
'.org.al',
'.org.am',
'.org.ar',
'.org.au',
'.org.az',
'.org.bb',
'.org.bd',
'.org.bm',
'.org.bn',
'.org.bo',
'.org.br',
'.org.bs',
'.org.bt',
'.org.bw',
'.org.cd',
'.org.ch',
'.org.cn',
'.org.co',
'.org.cu',
'.org.cy',
'.org.dm',
'.org.do',
'.org.dz',
'.org.ec',
'.org.ee',
'.org.eg',
'.org.es',
'.org.et',
'.org.fj',
'.org.fk',
'.org.ge',
'.org.gg',
'.org.gh',
'.org.gi',
'.org.gn',
'.org.gr',
'.org.hk',
'.org.hn',
'.org.ht',
'.org.hu',
'.org.il',
'.org.im',
'.org.in',
'.org.ir',
'.org.je',
'.org.jm',
'.org.jo',
'.org.kh',
'.org.kw',
'.org.ky',
'.org.kz',
'.org.lb',
'.org.lc',
'.org.li',
'.org.lk',
'.org.lr',
'.org.ls',
'.org.lu',
'.org.lv',
'.org.ly',
'.org.ma',
'.org.mg',
'.org.mk',
'.org.mo',
'.org.mt',
'.org.mv',
'.org.mw',
'.org.mx',
'.org.my',
'.org.ng',
'.org.ni',
'.org.np',
'.org.nr',
'.org.nz',
'.org.om',
'.org.pa',
'.org.pe',
'.org.pf',
'.org.pk',
'.org.pl',
'.org.pr',
'.org.ps',
'.org.pt',
'.org.py',
'.org.ru',
'.org.sa',
'.org.sc',
'.org.sd',
'.org.se',
'.org.sg',
'.org.sv',
'.org.tj',
'.org.tn',
'.org.tr',
'.org.tt',
'.org.tw',
'.org.ua',
'.org.uk',
'.org.uy',
'.org.ve',
'.org.vi',
'.org.vn',
'.org.yu',
'.org.za',
'.org.zm',
'.org.zw',
'.osaka.jp',
'.pa',
'.pa.us',
'.parliament.cy',
'.parliament.uk',
'.parti.se',
'.pe',
'.pe.ca',
'.per.kh',
'.per.sg',
'.perso.ht',
'.pf',
'.pf',
'.pg',
'.ph',
'.ph',
'.pk',
'.pk',
'.pl',
'.pl',
'.pl.ua',
'.plc.ly',
'.plc.uk',
'.plo.ps',
'.pm',
'.pn',
'.pol.dz',
'.pol.ht',
'.pol.tr',
'.police.uk',
'.poltava.ua',
'.post',
'.poznan.pl',
'.pp.ru',
'.pp.se',
'.ppg.br',
'.pr',
'.pr',
'.prd.fr',
'.prd.mg',
'.press.cy',
'.press.se',
'.presse.fr',
'.pri.ee',
'.priv.hu',
'.priv.no',
'.pro',
'.pro.ae',
'.pro.br',
'.pro.cy',
'.pro.ec',
'.pro.fj',
'.pro.ht',
'.pro.mv',
'.pro.om',
'.pro.pr',
'.pro.tt',
'.pro.vn',
'.ps',
'.ps',
'.psc.br',
'.psi.br',
'.pt',
'.pt',
'.pub.sa',
'.publ.pt',
'.pvt.ge',
'.pw',
'.py',
'.qa',
'.qc.ca',
'.qh.cn',
'.qsl.br',
'.re',
'.rec.br',
'.red.sv',
'.reklam.hu',
'.rel.ht',
'.res.in',
'.ri.us',
'.ro',
'.ro',
'.rovno.ua',
'.ru',
'.ru',
'.rv.ua',
'.rw',
'.rw',
'.s.se',
'.sa',
'.sa.cr',
'.saga.jp',
'.saitama.jp',
'.sapporo.jp',
'.sb',
'.sc',
'.sc',
'.sc.cn',
'.sc.ug',
'.sc.us',
'.sch.ae',
'.sch.ir',
'.sch.lk',
'.sch.ly',
'.sch.om',
'.sch.sa',
'.sch.uk',
'.sch.zm',
'.school.fj',
'.school.nz',
'.school.za',
'.sci.eg',
'.sd',
'.sd',
'.sd.cn',
'.sd.us',
'.se',
'.se',
'.sebastopol.ua',
'.sec.ps',
'.sendai.jp',
'.sex.hu',
'.sg',
'.sg',
'.sh',
'.sh.cn',
'.shiga.jp',
'.shimane.jp',
'.shizuoka.jp',
'.shop.ht',
'.shop.hu',
'.si',
'.sj',
'.sk',
'.sk.ca',
'.sl',
'.sld.do',
'.sld.pa',
'.slg.br',
'.slupsk.pl',
'.sm',
'.sn',
'.sn.cn',
'.so',
'.soc.lk',
'.sport.hu',
'.sr',
'.srv.br',
'.st',
'.stat.no',
'.su',
'.suli.hu',
'.sumy.ua',
'.sv',
'.sx.cn',
'.sy',
'.sz',
'.szczecin.pl',
'.szex.hu',
'.t.se',
'.tc',
'.td',
'.te.ua',
'.tel.tr',
'.ternopil.ua',
'.tf',
'.tg',
'.th',
'.tj',
'.tj',
'.tj.cn',
'.tk',
'.tl',
'.tm',
'.tm.cy',
'.tm.fr',
'.tm.hu',
'.tm.mc',
'.tm.mg',
'.tm.se',
'.tm.za',
'.tmp.br',
'.tn',
'.tn.us',
'.to',
'.to',
'.to',
'.tochigi.jp',
'.tokushima.jp',
'.tokyo.jp',
'.torun.pl',
'.tottori.jp',
'.tourism.tn',
'.toyama.jp',
'.tozsde.hu',
'.tp',
'.tr',
'.travel',
'.trd.br',
'.tt',
'.tt',
'.tur.br',
'.tv',
'.tv',
'.tv.bo',
'.tv.br',
'.tv.sd',
'.tw',
'.tw',
'.tw',
'.tw',
'.tw',
'.tx.us',
'.tz',
'.u.se',
'.ua',
'.ua',
'.ug',
'.ug',
'.uk',
'.um',
'.uri.arpa',
'.urn.arpa',
'.us',
'.us',
'.ut.us',
'.utazas.hu',
'.uy',
'.uz',
'.uzhgorod.ua',
'.va',
'.va.us',
'.vatican.va',
'.vc',
'.ve',
'.vet.br',
'.vg',
'.vgs.no',
'.vi',
'.vi',
'.video.hu',
'.vinnica.ua',
'.vn',
'.vn',
'.vn.ua',
'.vt.us',
'.vuwf',
'.w.se',
'.wa.us',
'.wakayama.jp',
'.warszawa.pl',
'.waw.pl',
'.weather.mobi',
'.web.do',
'.web.lk',
'.web.pk',
'.web.tj',
'.web.tr',
'.web.ve',
'.web.za',
'.wi.us',
'.wroc.pl',
'.wroclaw.pl',
'.wv.us',
'.wy.us',
'.x.se',
'.xj.cn',
'.xz.cn',
'.y.se',
'.yamagata.jp',
'.yamaguchi.jp',
'.yamanashi.jp',
'.ye',
'.yk.ca',
'.yn.cn',
'.yokohama.jp',
'.yt',
'.yu',
'.z.se',
'.za',
'.zaporizhzhe.ua',
'.zhitomir.ua',
'.zj.cn',
'.zlg.br',
'.zm',
'.zp.ua',
'.zt.ua',
'.zw'
))
if __name__=="__main__":
for item in ['http://something.unknown','http://a.b.c.something.unknown','http://something','http://google.com','http://a.b.c.d.e.google.com','http://something.uk','http://aa.bb.cc.dd.ee.ff.gg.guardian.co.uk','http://guardian.co.uk','http://www.guardian.co.uk','http://www.google.com','http://wikipedia.org','http://www.wikipedia.org','',None,'whatever']:
for level in range(0,5):
print "url=%s, levels=%s => %s" % (item, level, parse_domain(item,level))