Pythonのような文字列があり、google.com
2つの部分に分割したいと思います:google
と.com
。問題は、とsubdomain.google.com
に分割したいなどのURLがある場合です。subdomain.google
.com
残りのURLをTLDから分離するにはどうすればよいですか?.
などのTLDのため、URLの最後に基づいて動作することはできません.co.uk
。URLにはhttp://またはwwwが含まれていないことに注意してください。
tldextractは必要なもののように見えます。それは.co.uk
問題を扱います。
tdlとurllibを使用しましたが、満足のいくものではありませんでした。この質問は、URLの解析方法に関するGoogle検索で何度も見つかりました。しばらくして、時間をかけて正規表現を作成し、オープンソースパッケージにしました。
co.ukのようなセカンダリトップドメインを持つURLを処理し、特殊文字を使用した国内URLもサポートします。
あなたにとって、それはこのようにそれを使うのは簡単でしょう:
第一歩:
pip install url-parser
ステップ2:
from url_parser import parse_url
url = parse_url('subdomain.google.com')
url['subdomain'] # subdomain
url['domain'] # google
url['top_domain'] #com
これらのキーを使用して、URLの別の部分を取得できます。
protocol
www
sub_domain
domain
top_domain
dir
file
fragment
query
これを行うには、有効なドメイン名のリストが必要になります。トップレベルのもの(.com、.orgなど)と国コード(.us、.frなど)は簡単に見つけることができます。http://www.icann.org/en/resources/registries/tldsを試してください。
第2レベルのもの(.co.uk、.org.au)の場合、サブドメインを確認するために各国コードを検索する必要がある場合があります。ウィキペディアはあなたの友達です。
リストを取得したら、名前(google.comまたはco.uk)から最後の2つの部分を取得し、それが第2レベルのリストに含まれているかどうかを確認します。そうでない場合は、最後の部分を取得して、それがトップレベルのリストにあるかどうかを確認します。