自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何從URL中快速提取域名?

網(wǎng)絡(luò) 通信技術(shù)
有時候,我們要從一段很長的 URL 里面提取出域名,但如果我給出的 URL 沒有帶 https://,這段代碼的結(jié)果就有問題。

有時候,我們要從一段很長的 URL 里面提取出域名。例如從

https://www.kingname.info/2020/10/02/copy-from-ssh/,我需要獲取的是kingname.info。

[[348899]]

可能有人會這樣寫代碼:

  1. url = 'https://www.kingname.info/2020/10/02/copy-from-ssh/' 
  2. domain = '.'.join(url.split('/')[2].split('.')[1:]) 

運行效果如下圖所示:

但如果我給出的 URL 沒有帶 https://,這段代碼的結(jié)果就有問題。

而且,有些域名可能有三級、四級域名,例如:blog.exercise.kingname.com.cn。顯然,使用點分割以后,也不知道怎么拿到真正的域名kingname.com.cn。

還有一些人的需求可能只需要域名中的名字,例如kingname.info只要kingname,google.com.hk只要google。

對于這些需求,如果手動寫規(guī)則來提取的話,會非常麻煩。

不過好在 Python 有一個第三方庫已經(jīng)解決了這個問題,這就是tld。

我們先來安裝它:

  1. python3 -m pip install tld 

安裝完成以后,我們來看看它的使用方法:

  1. >>> url = 'https://www.kingname.info/2020/10/02/copy-from-ssh/' 
  2. >>> from tld import get_tld 
  3. >>> result = get_tld(url, as_object=True
  4. >>> domain = result.domain 
  5. >>> print(domain) 
  6. kingname 
  7. >>> domain_with_suffix = result.fld 
  8. >>> print(domain_with_suffix) 
  9. kingname.info 

首先使用get_tld生成一個對象,然后通過對象的.domain屬性獲得純域名,使用.fld屬性,獲得帶有后綴的域名。

運行效果如下圖所示:

對于不含https的網(wǎng)址,直接使用會報錯,如下圖所示:

但只要加上一個參數(shù)fix_protocol=True就可以解決問題:

 

責(zé)任編輯:趙寧寧 來源: 未聞Code
相關(guān)推薦

2009-08-14 18:03:47

C#正則表達(dá)式提取

2021-05-13 23:54:12

DockerDockerfile鏡像

2021-10-21 05:41:27

QueenSono安全工具提取數(shù)據(jù)

2021-04-16 20:50:16

URL爬蟲參數(shù)

2012-05-03 08:42:40

Windows7

2015-10-19 17:39:42

程序員倦怠

2019-10-30 05:32:17

網(wǎng)址URLIP地址

2020-02-12 08:00:44

SaaS數(shù)據(jù)云計算

2021-11-12 09:35:33

網(wǎng)址URLLinux

2016-01-26 11:08:54

2023-10-05 05:59:11

網(wǎng)絡(luò)安全傳送門

2014-05-07 09:20:45

Liunx快速閱讀

2021-08-30 23:47:28

URLQuery字段

2021-06-01 21:22:44

解析域名編程

2009-09-22 10:04:00

Windows 7文件管理

2023-11-15 13:04:30

Python提取表格

2014-06-27 09:34:03

AngularJS

2019-01-07 08:10:54

微服務(wù)單體 Web

2015-12-22 17:50:12

2019-12-03 09:31:14

編程語言程序員Python
點贊
收藏

51CTO技術(shù)棧公眾號