我想從URL列表中提取域名(站點名稱+ TLD),URL列表的格式可能不同。 例如: 現狀---->我想如何從python中的URL獲取域名(名稱+ TLD)
mail.yahoo.com------> yahoo.com
account.hotmail.co.uk---->hotmail.co.uk
x.it--->x.it
google.mail.com---> google.com
是否有任何Python代碼,可以幫助我與提取我從URL想還是應該做手工?
我想從URL列表中提取域名(站點名稱+ TLD),URL列表的格式可能不同。 例如: 現狀---->我想如何從python中的URL獲取域名(名稱+ TLD)
mail.yahoo.com------> yahoo.com
account.hotmail.co.uk---->hotmail.co.uk
x.it--->x.it
google.mail.com---> google.com
是否有任何Python代碼,可以幫助我與提取我從URL想還是應該做手工?
這有點不平凡,因爲沒有簡單的規則來確定什麼使有效的公共後綴(網站名稱+ TLD)。相反,什麼使公共後綴是maintained as a list at 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和TLD CC的public list被維護。
此python項目讀取此列表並將您的URL與此列表進行比較。
https://github.com/john-kurkowski/tldextract
@ Martijn的回答完全覆蓋了這一點。 – 2013-03-17 13:03:45
它是一個替代python項目。但我認爲Martijn Pieters更好。 – 2013-03-17 13:07:46
使用Python TLD
https://pypi.python.org/pypi/tld
$ PIP安裝TLD
from tld import get_tld
print get_tld("http://www.google.co.uk/some-page/some-sub-page/")
'google.co.uk'
這是誤導。 tld是'uk'。 – Doug 2015-11-19 17:42:45
在這個時候,我看到有六個包做域名分裂:
他們的方式不同,他們緩存公共後綴列表數據(僅tldextract使用JSON文件,從而節約解析加載列表),用於下載數據的策略以及它們保存在內存中的結構(分別爲:凍結nset,set,set,標籤字典,同上,名字字典),它決定了搜索算法。
Thanks.Can你告訴我應該如何使用這個軟件包。下載後應打開哪個文件? – UserYmY 2013-03-17 12:53:18
或者[運行'setup.py'文件](http://docs.python.org/2/install/index.html)或者使用[python安裝工具(推薦)](http://guide.python -distribute.org/installation.html)。 – 2013-03-17 12:57:25
我正在使用eclipse IDE。哪一個被推薦? – UserYmY 2013-03-17 12:58:04