国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實現(xiàn)從url中提取域名的幾種方法

2020-02-23 05:52:25
字體:
供稿:網(wǎng)友

從url中找到域名,首先想到的是用正則,然后尋找相應(yīng)的類庫。用正則解析有很多不完備的地方,url中有域名,域名后綴一直在不斷增加等。通過google查到幾種方法,一種是用Python中自帶的模塊和正則相結(jié)合來解析域名,另一種是使第三方用寫好的解析模塊直接解析出域名。

要解析的url

代碼如下:
urls = ["http://meiwen.me/src/index.html",
          "http://1000chi.com/game/index.html",
          "http://see.xidian.edu.cn/cpp/html/1429.html",
          "https://docs.python.org/2/howto/regex.html",
          """https://www.google.com.hk/search?client=aff-cs-360chromium&hs=TSj&q=url%E8%A7%A3%E6%9E%90%E5%9F%9F%E5%90%8Dre&oq=url%E8%A7%A3%E6%9E%90%E5%9F%9F%E5%90%8Dre&gs_l=serp.3...74418.86867.0.87673.28.25.2.0.0.0.541.2454.2-6j0j1j1.8.0....0...1c.1j4.53.serp..26.2.547.IuHTj4uoyHg""",
          "file:///D:/code/echarts-2.0.3/doc/example/tooltip.html",
          "http://api.mongodb.org/python/current/faq.html#is-pymongo-thread-safe",
          "https://pypi.python.org/pypi/publicsuffix/",
          "http://127.0.0.1:8000"
          ]

使用urlparse+正則的方式

代碼如下:
import re
from urlparse import urlparse

topHostPostfix = (
    '.com','.la','.io','.co','.info','.net','.org','.me','.mobi',
    '.us','.biz','.xxx','.ca','.co.jp','.com.cn','.net.cn',
    '.org.cn','.mx','.tv','.ws','.ag','.com.ag','.net.ag',
    '.org.ag','.am','.asia','.at','.be','.com.br','.net.br',
    '.bz','.com.bz','.net.bz','.cc','.com.co','.net.co',
    '.nom.co','.de','.es','.com.es','.nom.es','.org.es',
    '.eu','.fm','.fr','.gs','.in','.co.in','.firm.in','.gen.in',
    '.ind.in','.net.in','.org.in','.it','.jobs','.jp','.ms',
    '.com.mx','.nl','.nu','.co.nz','.net.nz','.org.nz',
    '.se','.tc','.tk','.tw','.com.tw','.idv.tw','.org.tw',
    '.hk','.co.uk','.me.uk','.org.uk','.vg', ".com.hk")

regx = r'[^/.]+('+'|'.join([h.replace('.',r'/.') for h in topHostPostfix])+')$'
pattern = re.compile(regx,re.IGNORECASE)

print "--"*40
for url in urls:
    parts = urlparse(url)
    host = parts.netloc
    m = pattern.search(host)
    res =  m.group() if m else host
    print "unkonw" if not res else res

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 蕉岭县| 呼玛县| 扶风县| 遵义市| 织金县| 奉新县| 扎赉特旗| 色达县| 台东县| 台北县| 博罗县| 米泉市| 寿光市| 丹寨县| 克东县| 石首市| 南溪县| 房产| 阿荣旗| 连江县| 从江县| 永年县| 无棣县| 汉源县| 泉州市| 若羌县| 恩施市| 溧水县| 曲靖市| 溧水县| 叙永县| 鹿泉市| 织金县| 永登县| 马尔康县| 张家界市| 徐汇区| 中阳县| 奉化市| 睢宁县| 沙田区|