python变量域名_Python实现从url中提取域名的几种方法
从url中找到域名,首先想到的是用正则,然后寻找相应的类库。用正则解析有很多不完备的地方,url中有域名,域名后缀一直在不断增加等。通过google查到几种方法,一种是用Python中自带的模块和正则相结合来解析域名,另一种是使第三方用写好的解析模块直接解析出域名。
要解析的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/searchclient=aff-cs-360chromiumhs=TSjq=url%E8%A7%A3%E6%9E%90%E5%9F%9F%E5%90%8Dreoq=url%E8%A7%A3%E6%9E%90%E5%9F%9F%E5%90%8Dregs_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
运行结果如下:
代码如下:
meiwen.me
1000chi.com
see.xidian.edu.cn
python.org
google.com.hk
unkonw
mongodb.org
python.org
127.0.0.1:8000
基本可以接受
urllib来解析域名
代码如下:
import urllib
print “–“*40
for url in urls:
proto, rest = urllib.splittype(url)
res, rest = urllib.splithost(rest)
print “unkonw” if not res else res
运行结果如下:
代码如下:
meiwen.me
1000chi.com
see.xidian.edu.cn
docs.python.org
www.google.com.hk
unkonw
api.mongodb.org
pypi.python.org
127.0.0.1:8000
会把www.也带上,还需要进一步解析才可以
使用第三方模块 tld
代码如下:
from tld import get_tld
print “–“*40
for url in urls:
try:
print get_tld(url)
except Exception as e:
print “unkonw”
运行结果:
代码如下:
meiwen.me
1000chi.com
xidian.edu.cn
python.org
google.com.hk
unkonw
mongodb.org
python.org
unkonw
结果都可以接受
其他可以使用的解析模块:
tld
tldextract
publicsuffix
python变量域名_Python实现从url中提取域名的几种方法相关推荐
- python3 提取url中域名部分_python 从网址(url)中提取域名和path
python 从url中提取域名和path python2代码 from urlparse import * url='http://www.chenxm.cc/post/719.html' res= ...
- Python实现从url中提取域名的几种方法
这篇文章主要介绍了Python实现从url中提取域名的几种方法,本文给出了3种方法实现在URL中提取域名的需求,需要的朋友可以参考下. 从url中找到域名,首先想到的是用正则,然后寻找相应的类库.用正 ...
- python listbox排序_python – 从tkinter.Listbox中提取项目列表
我编写了以下tkinter脚本来了解如何将数据列表添加到tkinter.Listbox小部件中.我发现了两种方法. 接下来,我想从tkinter.Listbox小部件中提取相同的列表.在4种不同的方法 ...
- php正则表达式 域名,PHP正则表达式从url中取得域名
以下代码可以从URL中获得域名 例如: 得到yyoo.cn function get_domain($url){ $pattern = "/[\w-]+\.(com|net|org|gov| ...
- php使用正则表达式获取域名,PHP正则表达式从url中取得域名
以下代码可以从URL中获得域名 例如:http://souzz.net/html/database/ORACLE/69613.html 得到souzz.net function get_domain( ...
- python自动翻译pdf_python实现从pdf文件中提取文本,并自动翻译的方法
针对Python 3.5.2 测试 首先安装两个包: $ pip install googletrans $ pip install pdfminer3k googletrans会提供一个命令tran ...
- python 运算符重载_Python 炫技操作:模块重载的五种方法
点击上方"Python编程时光",选择"加为星标"第一时间关注Python技术干货!明哥原创的200页<PyCharm 中文指南> 震撼发布 系列文 ...
- python取出字典中最大值_python找出字典中value最大值的几种方法
假设定义一字典,m = {"a":3,"e":6,"b":2,"g":7,"f":7,"c ...
- python字典找出年龄最大的人_python找出字典中value最大值的几种方法
假设定义一字典,m = {"a":3,"e":6,"b":2,"g":7,"f":7,"c ...
最新文章
- 【学习摘录】推荐算法
- linux 常用命令总结
- Hibernate -- Dao层 -- CURD -- 随记
- 机器人锤石下路组合_下周二,极智嘉研发总监讲解物流机器人视觉感知与定位关键技术...
- 手机版网页开发_华为低调发布鸿蒙OS手机开发者Beta版,明年覆盖1亿台设备
- 八十八、Python | 十大排序算法系列(下篇)
- 2011年CDMA终端谁将给力?
- 误差函数拟合优缺点_欠拟合、过拟合及如何防止过拟合
- Java中 volatile 关键字的最全总结,赶快给自己查缺补漏吧!
- 听鲍宏图解读微软企业级市场战略
- Unity如何设置两个玩家
- 中国塑料食品和饮料包装行业市场供需与战略研究报告
- 修改joomla!底部版权信息的方法
- 7-1 xbmc学习笔记
- 【数据结构】线性处理字符串中指定字串的个数问题
- 生信技能树linux虚拟机,【生信技能树】Linux练习
- C#使用oledb连接excel执行Insert Into语句出现“操作必须使用一个可更新的查询”的解决办法
- Spark独到见解--Transformation算子总结
- 构造图片对网络进行对抗攻击n+m=7
- c#读蓝牙数据_c# – 将蓝牙设备连接到具有32feet .NET蓝牙库的计算机
热门文章
- 2020 中国高校薪资排行出炉!好过双一流的高校原来这么多!
- 20分钟+1080显卡,能跑多复杂的模型?
- 计算机视觉的数据增广技术大盘点!附涨点神器,已开源!
- 打造计数君!谷歌提出RepNet:可自动计数视频重复片段 | CVPR 2020
- Python 官方报告:哪些库最受欢迎、PyCharm 比 VScode更香?
- 用Python分析了十年电影票房,原来我错过了这么多好电影!
- 权限表管理之获取用户权限表列表数据
- MATLAB_4-形态学_腐蚀_膨胀_灰度图的腐蚀以及膨胀_开运算_闭运算_文章末尾有几个素材例子
- linux硬链接与软链接
- C语言指针调用函数_只愿与一人十指紧扣_新浪博客