用Python高效提取域名:正则表达式与实战案例

关于正则表达式提取域名的一些妙用 背景 本人闲暇时刻喜欢搜藏一些域名出售,平时免不了做一些域名停放页之类的东西,想让域名得到最大程度的展示,就要在各式各样的环境下部署域名停放页,有免费的也有收费的,当然如果支持php或者类似动态语言的脚本的话,取主域名就简单的多了,有些免费的页面只支持html/js代码.为了通过url或者主机头来获取当前主域名,适应各式各样的环境,决定用js来实现! 目的 封装一个js方法,实现下面的目的,如: 传入 “abc.erji.domain.com.cn” 正确获取到 “domain.com.cn” 传入 “a 阅读详情

一、需求场景分析

在网络爬虫开发、日志分析或安全监测等场景中,我们经常需要从复杂文本中提取特定域名。本文将以以下域名集合为例,演示如何通过Python实现精准提取:

oyex.cc
oyix.cc
oyie.cc
oyii.cc
oyxe.cc
oyxx.cc
ouyy.cc
ouyz.cc
oyio.cc
oyia.cc

二、实现思路解析

2.1 域名结构特征

观察目标域名可以发现以下特征:

  • 使用.cc顶级域名
  • 主体部分由4个字符组成
  • 前两个字符固定为oy或ou
  • 后两个字符为字母组合

2.2 技术方案选择

推荐使用正则表达式结合Python的re模块实现,其优势在于:

  1. 模式匹配高效准确
  2. 支持复杂规则组合
  3. 可扩展性强

三、完整代码实现

import re

def extract_domains(text):
    """
    从文本中提取特定模式的域名
    匹配规则:
    - 以oy/ou开头
    - 4个字母组成的主体
    - .cc顶级域名
    """
    pattern = r"""
    \b            # 单词边界
    (oy|ou)        # 匹配oy或ou开头
    [a-z]{2}       # 匹配任意两个小写字母
    \.cc           # 匹配.cc后缀
    \b             # 单词边界
    """
    
    domains = re.findall(pattern, text, re.X | re.I)
    return [domain.upper() + ".cc" for domain in domains]

# 测试文本
sample_text = """
访问记录:
http://oyex.cc/api?query=1 
HTTPS://OYIX.CC/dashboard
无效域名:test.oyxx.com 
异常格式:ouyz.cc123
有效域名:oyia.cc?param=test
"""

# 执行提取
results = extract_domains(sample_text)
print("提取到的域名:")
print('\n'.join(sorted(list(set(results)))))

四、代码解析

4.1 正则表达式详解

  • \b:确保完整单词匹配
  • (oy|ou):匹配起始字符组合
  • [a-z]{2}:匹配任意两个字母
  • \.cc:严格匹配目标后缀

4.2 关键参数说明

  • re.X:允许使用注释和空白排版
  • re.I:启用大小写不敏感匹配
  • list(set()):去重处理

五、进阶应用示例

5.1 批量文件处理

def batch_process(file_path):
    with open(file_path, 'r', encoding='utf-8') as f:
        content = f.read()
    return extract_domains(content)

# 示例调用
print(batch_process('access.log'))

5.2 结果验证模块

def validate_domain(domain):
    expected_domains = {
        'OYEX.CC', 'OYIX.CC', 'OYIE.CC',
        'OYII.CC', 'OYXE.CC', 'OYXX.CC',
        'OUYY.CC', 'OUYZ.CC', 'OYIO.CC',
        'OYIA.CC'
    }
    return domain in expected_domains

# 使用示例
for domain in results:
    print(f"{domain}: {'有效' if validate_domain(domain) else '无效'}")

六、常见问题处理

6.1 子域名干扰

在正则表达式前添加(?:https?://)?(?:www\.)?可兼容URL前缀:

pattern = r"(?:https?://)?(?:www\.)?(oy|ou)[a-z]{2}\.cc"

6.2 大小写混合处理

通过upper()统一格式化,保持结果一致性:

return [domain.upper() + ".cc" for domain in domains]

七、性能优化建议

  1. 预编译正则表达式(适用于大数据量场景):
DOMAIN_PATTERN = re.compile(r"...", re.X)
  1. 使用生成器处理大型文件
  2. 增加缓存机制存储已知域名

八、扩展应用场景

  1. 安全监控:检测异常域名请求
  2. SEO分析:统计特定域名出现频率
  3. 数据清洗:规范化日志中的域名记录

九、总结

本文实现了以下目标:

  1. 精准提取.cc短域名
  2. 处理不同大小写格式
  3. 兼容URL包含协议头的情况
  4. 提供验证和批处理功能

完整代码已托管至GitHub(示例仓库地址),读者可根据实际需求调整正则表达式中的匹配规则,例如修改[a-z]{2}为[a-z]{3}即可匹配更长字符的域名主体。

Python正则解析URL地址 1、使用正则表达式提取URL中的协议。当使用Python来分析网络地址时,首先要把URL中的协议部分分开。可以使用re模块的findall函数来匹配正则表达式。import reprint(protocol) # 输出结果为 http2、使用正则表达式提取URL中的域名。URL中的域名部分可以通过正则表达式提取出来。import re 阅读详情

相关推荐

Python项目开发实战:如何实现爬虫与二级域名枚举

在当今信息爆炸的时代,如何有效地获取、处理和分析数据成为了一项重要的技能。Python作为一种强大的编程语言,其简洁易读、功能丰富的特点使得它在数据处理领域有着广泛的应用。其中,爬虫技术和域名枚举是Python在数据获取方面的两个重要应用。本文将简要介绍Python项目开发实战中爬虫与二级域名枚举的基本概念、原理以及实际应用。

一个好知识的传播者 1450

提取及替换域名的正则表达式

提取替换域名的正则表达式

Kainx 4828

Python正则表达式实战:从模式匹配到数据提取的完整指南

正则表达式作为文本处理的强大工具,其核心在于模式匹配——通过一套符号语言精确描述文本结构。在Python开发中,re模块提供了完整的正则引擎,支持从简单的字符串查找替换到复杂的数据提取。掌握字符类、量词、分组捕获等核心概念,能高效处理日志解析、数据清洗、信息抽取等常见场景。本文以Python实践视角,深入讲解re.search、re.findall、re.finditer等核心函数的使用技巧,并涵盖性能优化与常见陷阱规避,帮助开发者将正则表达式这把“瑞士军刀”真正融入日常开发工作流。

weixin_33736048的博客 480

正则表达式获取一串网址的域名段代码

有时候我们需要对一段网址获取其域名的一串,比如:http://www.baidu.com/aaaa/bbb/cccc.html我们需要获取到http://www.baidu.com这一串,或者是http://192.168.111.11:8888/aaaa/bbb/ccc.html,我们需要获取到http://192.168.111.11:8888这一串那正则表达式应该怎么写呢?运行结果:完整demo:

小小鱼儿小小林的博客 6万+

正则表达式实战:从网页源码中提取手机号、邮箱与日期

本文针对爬虫场景中常见的数据提取需求,详细讲解手机号、邮箱和日期的正则表达式匹配方法。对于手机号,通过分析国内11位标准格式设计精准匹配模式;针对电子邮件地址,构建支持特殊字符和多级域名的复杂匹配规则;日期提取则采用兼容多种分隔符和格式的通用模式。文章结合Python代码演示了从网页源码中批量提取这三类数据的具体实现,并提供了标准化处理和去重等实用技巧。最后强调正则表达式实战中需平衡精准度与兼容性,为后续学习XPath解析网页结构奠定基础。

2503_91057718的博客 602

【Python进阶】正则表达式实战指南:从基础到高阶应用

本文通过15个实用案例,系统讲解Python正则表达式的核心用法,涵盖模式匹配、文本提取、数据验证等场景,帮助初学者快速掌握文本处理利器。

赶紧的博客 1688

正则表达式获取URL中的域名

正则:(http|https)://(www.)?(\w+(\.)?)+ 测试1:https://www.amazon.co.uk/Wireless-iClever-Bluetooth-Backlight-Smartphone/dp/B018K5EJCQ/ref=sr_1_28?s=computers&ie=UTF8&qid=1496913940&sr=1-28&keywords=Bluetoo

yong472727322的博客 2万+

【Python爬虫(12)】正则表达式:Python爬虫的进阶利刃

本文将深入探讨正则表达式的高级语法,包括分组、回溯引用、零宽断言等,详细介绍如何使用 Python 的 re 库进行复杂文本模式的匹配与数据提取,并着重研究如何处理正则表达式在爬虫应用中的性能优化问题,助力读者将正则表达式的运用提升到新的高度。

邓邓子的博客 2607

正则表达式实战:通过 Python 实现文本数据的高效匹配与替换

正则表达式是处理文本数据时的一项强大工具,能够极大地提升数据匹配与替换的效率。在 Python 中,re模块提供了许多常用的方法,帮助我们高效地进行正则表达式操作。

一名热衷于技术的全栈开发者,专注于前端与后端的全面技术探索。在这里,我将分享我在技术领域的学习与成长,助力更多开发者的进步。 1452

矿卡CMP 170HX的AI推理性能优化实战

GPU计算在现代AI推理中扮演着核心角色,其并行计算架构特别适合处理神经网络的大规模矩阵运算。通过CUDA指令集优化和计算管线重构,可以显著提升硬件利用率,这在边缘计算和带宽敏感型任务中尤为重要。以NVIDIA CMP 170HX矿卡为例,通过禁用FMA指令和框架适配优化,其FP32性能可提升15.9倍,在Qwen2.5-1.5B模型的4-bit量化推理中达到A100同架构78%的解码速度。这种优化技术不仅让淘汰矿卡重获新生,更为边缘AI部署提供了高性价比解决方案,特别适合7B以下量化模型部署和多路视频分析

weixin_30432579的博客 632

SRCNN超分辨率Pytorch实现,代码逐行讲解,附源码

超分辨率,就是把低分辨率(LR, Low Resolution)图片放大为高分辨率(HR, High Resolution)的过程。通过CNN将图像Y 的特征提取出来存到向量中。用一层的CNN以及ReLU去将图像Y 变成一堆堆向量,即feature map。把提取到的特征进一步做非线性映射,加大网络深度,提高网络复杂性。结合了前面得到的补丁来产生最终的高分辨率图像。实验步骤。

weixin_52261094的博客 3万+

python 提取域名_Python实现从url中提取域名的几种方法

从url中找到域名,首先想到的是用正则,然后寻找相应的类库。用正则解析有很多不完备的地方,url中有域名,域名后缀一直在不断增加等。通过google查到几种方法,一种是用Python中自带的模块和正则相结合来解析域名,另一种是使第三方用写好的解析模块直接解析出域名。要解析的url复制代码 代码如下:urls = ["http://meiwen.me/src/index.html","http://...

weixin_39875832的博客 767

[技术解析] SGDC驱动的轻量级IoT入侵检测:特征选择与模型优化的实战指南

本文深入解析了如何利用SGDC驱动的轻量级入侵检测系统保护IoT设备安全。通过实战指南,详细阐述了SGDC模型在资源受限环境下的优势,并结合特征选择技术优化模型性能,实现高效、低耗的异常流量检测,为物联网安全部署提供了一套可行的解决方案。

weixin_29192211的博客 350

如何在Python中使用正则表达式 7个实战技巧

1.基本匹配2.匹配多个模式3.使用分组4.使用命名分组5.替换字符串6.使用标志7.高级匹配:贪婪与非贪婪通过这些技巧,你可以更高效地处理文本数据。

weixin_53707653的博客 1252

QT播放器插件内嵌浏览器配合流媒体实现国标摄像头网页端播放

基本原理在浏览器⽹页中的指定播放窗口的位置和⼤⼩,实现⼀个内嵌到⽹页中显⽰的播放窗⼝,前端还必须可对这个内嵌播放窗⼝进⾏控制,⽽且播放窗⼝必须跟随浏览器窗⼝的移动和缩放、⽹页滚动、标签页切换、关闭等操作进⾏⾃动联动。播放器可以通过QT实现。这个播放窗⼝同时提供Web Socket的服务端和JSON打包命令的解析执⾏模块,前端就可以通过Web Socket连接后发送JSON打包的控制命令实现控制播放窗⼝。

cameravision的博客 562

【学习笔记】人群归因分数 PAF 以及combined PAF

人群归因风险比例(Population Attributable Fraction,PAF)是一个流行病学指标,它估计了在总体中,如果能消除一个特定的危险因素,能预防多少百分比的疾病或健康结果。简单来说,PAF回答的是:“如果没有这个风险因素,总体中会有多少病例是可以避免的?

weixin_53499537的博客 4900

Python实战之特定文本提取,挑战高效办公的第一步

最近很多地方都在宣传Python的自动化办公的强大之处,那么今天大灰狼就来和大家分享一个Python自动化办公的实战项目。 很多时候我们会在很多繁琐而无聊的任务中而浪费大量的时间,比如说会在一篇很长的网页或者文档中找出所有的电话和E-mail地址,如果手动查找可能是需要花费大量的时间和精力。 但是如果说现在有一个程序,可以在剪贴板的文本中查找电话号码和E-mail地址,只需要你按一下Ctrl+A所...

累计发表博客60余万字,优快云 博客专家、Java 领域优质创作者、华为云享专家、阿里云专家博主。专注分享 Java 优质文章,毕设实战项目开发,全网粉丝10W+ 4588

QGIS三维地形可视化实战:从DEM数据到炫酷3D场景(附Qgis2threejs插件配置)

本文详细介绍了如何利用QGIS和Qgis2threejs插件,将DEM数据转化为交互式三维地形场景的完整工作流。核心内容包括DEM数据准备、坐标系选择(重点对比WGS 84与UTM的差异及影响)、插件核心参数配置、卫星影像与等高线叠加等进阶技巧,并提供了成果导出与常见问题解决方案,帮助用户高效创建可用于网页展示的炫酷3D可视化成果。

mqtt6iot的博客 875

Python正则表达式在数据清洗中的5个实战案例

不同系统导出的日期格式可能千差万别,比如"2023-12-31"、"31/12/2023"、"Dec 31, 2023"等。中国的手机号有固定的格式(如13/15/18开头),而邮箱地址也有特定的结构(包含@和域名)。编写合适的正则表达式模式,可以准确提取出这些信息,避免人工查找的繁琐。对于复杂的任务,可以采用多步处理:先用宽泛的模式提取,再用精确的模式过滤。它内置了Python环境,可以直接在线编写和测试正则表达式,还能一键部署成可用的工具,省去了配置本地环境的麻烦。希望这些实战经验对你有帮助。

IndigoNight21的博客 929

基于 Simulink 的 PV 光伏阵列功率发电系统仿真 Matlab

其中直流侧电压需要与光伏电池组件匹配,交流侧电压则需要与配电系统匹配,开关频率一般在几千赫兹左右,需要保证在一定范围内。根据实际需求,我们还可以通过增加负载,以及调节光照强度等方式,模拟不同的情况下系统的响应和性能表现。经过设置参数和各部分之间的传递和控制后,我们可以开始进行模型仿真。在仿真前,我们需要确定仿真时间和步长,并对整体模型进行编译。在建立完毕整体模型框架后,我们需要为每个组件设置参数,并进行传递和控制。首先,我们需要建立一个整体的模型框架,包括各个组件之间的关系和控制器的作用。

学习使你进步。 1129

从数据到行动:客服运营必分析的8大核心维度

服务运营正从被动响应升级为数据驱动型战略体系。客服中心的海量交互数据能精准反映服务效能、客户体验及运营短板,关键在于实现数据的可视化与可操作化。本文系统剖析了八类核心数据指标:1)客户行为数据(CSAT/NPS/投诉内容);2)通话效率指标(AHT/接通率);3)服务质量(质检体系/情绪识别);4)坐席绩效(FCR/客户评价);5)流程与知识库(转接率/工单时效);6)渠道流量分析;7)异常预警机制;8)成本收益模型。通过构建多维数据分析体系,企业可在客户全生命周期管理中实现服务升级、风险防控与资源

2202_75469062的博客 1400

Python正则表达式提取网页链接(高手都在用的正则技巧大公开)

掌握Python正则表达式提取网页链接的实用技巧,轻松实现网页数据抓取与信息筛选。适用于爬虫开发、日志分析等场景,精准匹配URL,高效稳定。附常用正则模式与代码示例,零基础也能快速上手,值得收藏。

BytePerch的博客 1485

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

python 提取域名,从URL Python中提取域名

I am tring to extract the domain names out of a list of urls. just like inhttps://stackoverflow.com/questions/18331948/extract-domain-name-from-the-urlMy problem is that the urls can be about everythi...

weixin_29692851的博客 543

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

《实战驱动!Python3 正则表达式入门案例合集》

通过这些实战案例,您掌握了Python3正则表达式的基础:验证、提取、替换和分割。使用rematch()findall()sub()split()。模式语法:如[]?\d\W等。实践建议:从简单模式开始,逐步测试复杂场景;利用在线工具(如Regex101)调试模式。动手尝试这些案例,修改参数以适应您的数据!正则表达式虽强大,但需练习才能精通。如果您有特定问题,欢迎提供更多细节,我会进一步优化案例。

2501_93892898的博客 255

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Python爬虫预处理必备技能:高效提取网页URL的正则表达式指南(仅此一篇讲透)

掌握Python正则表达式提取网页链接的高效方法,解决爬虫预处理中的URL提取难题。适用于HTML文本解析、数据抓取等场景,精准匹配各类链接格式,提升处理效率。实用技巧全覆盖,值得收藏。

StepNexus的博客 658

从入门到精通:Python正则表达式提取超链接的4种高阶写法

掌握Python正则表达式提取网页链接的高效方法,解决爬虫开发中的链接抓取难题。涵盖HTML解析、URL过滤、分组匹配等4种高阶写法,适用于网页抓取、数据清洗等场景,精准提取目标链接,提升开发效率,值得收藏。

simcode的专栏 898
上一篇: Python云开发实战:8个提升生产力的关键服务
下一篇: 用Python打造域名潜力探测器——发现优质短域名的技巧
极客李太白
博客等级 码龄8年 5粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值