簡體   English   中英

如何從python中的URL獲取域名(名稱+ TLD)

[英]How to get the domainname (name+TLD) from a URL in python

我想從URL列表中提取域名(站點名稱+ TLD),這些URL的格式可能不同。 例如:當前狀態---->我想要什么

mail.yahoo.com------> yahoo.com
account.hotmail.co.uk---->hotmail.co.uk
x.it--->x.it
google.mail.com---> google.com

是否有任何python代碼可以幫助我從URL中提取我想要的內容,還是應該手動執行?

這有點不重要,因為沒有簡單的規則來確定什么是有效的公共后綴(站點名稱+ TLD)。 相反,什么使公共后綴在PublicSuffix.org上作為列表維護

存在查詢列表(本地存儲)的python包; 它被稱為publicsuffix

>>> from publicsuffix import PublicSuffixList
>>> psl = PublicSuffixList()
>>> print psl.get_public_suffix('mail.yahoo.com')
yahoo.com
>>> print psl.get_public_suffix('account.hotmail.co.uk')
hotmail.co.uk

維護了TLD和CC TLD的公開列表

這個python項目讀取此列表並將您的URL與此列表進行比較。

https://github.com/john-kurkowski/tldextract

使用python tld

https://pypi.python.org/pypi/tld

$ pip install tld

from tld import get_tld
print get_tld("http://www.google.co.uk/some-page/some-sub-page/")
'google.co.uk'

這時我看到六個包進行域名拆分:

它們緩存公共后綴列表數據的方式不同(只有tldextract使用JSON文件,從而節省了在加載時解析列表),用於下載該數據的策略,以及它們保留在內存中的結構(分別為:frozenset) ,設置,設置,標簽字典,同上,名字字典),它決定了搜索算法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM