当前位置: 首页 > news >正文

python提取域名

创建ai流程的时候,碰到需要提取域名,需要使用python或者大模型参数提取,由于想尽量减少大模型的token消耗,因此决定使用python来提取,又快又省,由于用户的输入五花八门,有的输入url,有的输入数字型域名,最奇葩的是域名后面刚好跟着个数字月份,就会识别出错,这下面是经过改良后的最终版本,如果发现bug,请留言。

import re
from typing import Dictdef main(arg1: str) -> Dict[str, str]:# 1. 修正后的域名正则#    (?![a-zA-Z.])  禁止后面直接出现字母或“.”,数字、中文、符号都可以domain_pattern = re.compile(r"(?<![a-zA-Z0-9-])"  # 前面不能是域名字符r"(?:[a-zA-Z0-9-]+\.)+"  # 至少一段“子域.”r"[a-zA-Z]{2,}"  # 顶级域 ≥2 字母r"(?![a-zA-Z.])"  # 后面不能接字母或“.”)# 2. 常见文件扩展名黑名单file_extensions = {".jpg",".jpeg",".png",".gif",".bmp",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".txt",".zip",".rar",".php",".html",".htm",".css",".js",".xml",".json",".sql",".log",}# 3. 抓取所有候选域名candidates = [m.group(0) for m in domain_pattern.finditer(arg1)]# 4. 过滤domains = []for d in candidates:if any(d.lower().endswith(ext) for ext in file_extensions):continueif not any(ch.isalpha() for ch in d):  # 必须含字母continueif not any(ch.isalpha() for ch in d.split(".")[-1]):  # 顶级域必须含字母continuedomains.append(d)# 5. 去重并返回unique = list(set(domains))return {"result": ",".join(unique), "domain_count": len(unique)}print(main("rule.hx2.com9月份sdfsf.ask.shop/sdf.dfg.jpg可用性分析"))
# 输出:{'result': 'rule.hx2.com', 'domain_count': 1}
http://www.dtcms.com/a/390057.html

相关文章:

  • PR工具timing report中setup time的计算过程
  • 低延迟垃圾收集器:挑战“不可能三角”
  • 【测试】发版测试准入准出标准
  • 第一部分:HTML
  • 贪心算法应用:带权任务间隔调度问题详解
  • 视频监控大数据建模分析
  • IP的重要性
  • 远程访问管理爱快路由器
  • 算法 --- 优先级队列(堆)
  • Kindle出现电池感叹号图标和黄灯闪烁怎么办?
  • 摄像头模块在无人机上的应用
  • 深度学习篇GRU---LSTM和RNN的折中方案
  • Doris聚合表和物化视图选型对比
  • 互补色颜色对应的RGB
  • Python定义UDS诊断服务(8):SecurityAccess(0x27)
  • 第1节 工具(剪映剪映小助手)准备及安装(Coze扣子空间剪映小助手教程)
  • 大模型提示词Prompt工程:1-万能公式-完整指南
  • 8.30美团技术岗算法第三题
  • CentOS 7 一键安装 vsftpd 并创建可登录 FTP 用户 test
  • k8s自定义调度器实现路径
  • 服务器数据恢复—RAIDZ硬盘“惹祸”导致服务器崩溃的数据恢复过程
  • 20250917_车辆定位系统aidata-01Apache Doris数据库备份+恢复+清理 流程操作文档
  • Redis 7.0 ACL实战:RBAC模型实现精细化权限控制
  • Lightrag 文档处理不成功(httpx.ReadTimeout 为主)的解决步骤与方法总结
  • Spring Boot + MySQL MCP 集成标准流程
  • 基于RK3588与ZYNQ7045的ARM+FPGA+AI实时系统解决方案
  • 基于Linux,看清C++的动态库和静态库
  • 多导睡眠五大PSG数据集统一格式化处理|SHHS
  • ZeroMQ基础
  • 【JavaGuide学习笔记】什么,Java中 native 也是一个关键字?