码迷,mamicode.com
首页 > 编程语言 > 详细

Python模块--PublicSuffix <获取URL的域名>

时间:2016-07-16 20:00:53      阅读:331      评论:0      收藏:0      [点我收藏+]

标签:

.com/.cn/.org之类的域名很好解决

类似.com.cn/.org.cn类似的域名没有直接的办法解决,本想搜集所有的顶级域名生成list然后使用正则匹配,却发现了这个。

PublicSuffix

基本的用法在介绍里面都有,但是需要注意这里面的几个坑,就是一条URL不能直接往里面塞,否则塞进去不识别的吐出来还是未识别的字符串。

  1. http://www.baidu.com/
  2. www.baidu.com/
  3. www.baidu.com#pictures
  4. www.baidu.com/search?word=sun
  5. www.baidu.com?balabala....
  6. ...

以上这些URL都是PublicSuffix无法正常识别的URL,原样返回或者返回一个不期望的字符串,所以在使用之前需要做一些字符串的处理。

 1 from publicsuffix import fetch, PublicSuffixList
 2 import codecs
 3 
 4 try:
 5     # 下载在线数据库生成匹配匹配list
 6     psl = PublicSuffixList(fetch())  #建议将数据库下载使用,本来就慢还要下载
 7 except Exception as error:
 8     # 使用本地数据库生成匹配匹配list
 9     psl_file = codecs.open(publicsuffix/public_suffix_list.dat,     encoding=utf8)
10     psl = PublicSuffixList(psl_file)
11 
12 # 处理一下乱七八糟的URL
13 def pure_url(url):
14     ......
15 
16 domain = psl.get_public_suffix(pure_url("http://www.baidu.com?word/"))

 

Python模块--PublicSuffix <获取URL的域名>

标签:

原文地址:http://www.cnblogs.com/loopsun/p/5676869.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!