python5

1.使用正则完成下列内容的匹配

  • 匹配陕西省区号 029-12345

  • 匹配邮政编码 745100

  • 匹配邮箱 lijian@xianoupeng.com

  • 匹配身份证号 62282519960504337X

代码如下:

python 复制代码
import re
texts = {
    "区号": "029-12345",
    "邮编": "123456",
    "邮箱": "llllll@xxhhyyzzzz.com",
    "身份证": "222333222322211121"
}
patterns = {
    "区号": r"029-\d{5}",
    "邮编": r"\d{6}",
    "邮箱": r".+@.+\..+",
    "身份证": r"\d{17}X|\d{18}"
}
for name in texts:
    result = re.search(patterns[name], texts[name])
    print(f"{name}: {result.group() if result else '没匹配到'}")

运行结果如下:

2.爬取学校官网,获取所有图片途径并将路径存储在本地文件中,使用装饰器完成

代码如下:

python 复制代码
import requests
import re
from functools import wraps
def save_to_file(filename):
    def decorator(func):
        @wraps(func)
        def wrapper(*args, **kwargs):
            result = func(*args, **kwargs)
            with open(filename, 'w', encoding='utf-8') as f:
                for item in result:
                    f.write(item + '\n')
            print(f"已保存 {len(result)} 条到 {filename}")
            return result
        return wrapper
    return decorator
def safe_request(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
        try:
            return func(*args, **kwargs)
        except Exception as e:
            print(f"请求失败: {e}")
            return ""
    return wrapper
class Spider:
    def __init__(self):
        self.url = "https://www.gsau.edu.cn/"
        self.headers = {'User-Agent': 'Mozilla/5.0'}
    @safe_request
    def fetch(self):
        res = requests.get(self.url, headers=self.headers)
        return res.text
    @save_to_file(filename='images.txt')
    def get_images(self):
        html = self.fetch()
        imgs = re.findall(r'<img[^>]+src="([^"]+)"', html)
        full_urls = []
        for img in imgs:
            if img.startswith('http'):
                full_urls.append(img)
            else:
                full_urls.append("https://www.gsau.edu.cn" + img)
        return full_urls
spider = Spider()
spider.get_images()

运行结果如下:

相关推荐
lee_curry9 分钟前
第四章 jvm中的垃圾回收器
java·jvm·垃圾收集器
wanhengidc19 分钟前
云手机 高振畅玩不踩坑
运维·服务器·安全·web安全·智能手机
QQ1__81151751521 分钟前
Spring boot名城小区物业管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
前端·vue.js·spring boot
钛态23 分钟前
前端微前端架构:大项目的救命稻草还是自找麻烦?
前端·vue·react·web
一粒黑子24 分钟前
【实战解析】阿里开源 PageAgent:纯前端 GUI Agent,一行JS让网页支持自然语言操控
前端·javascript·开源
独角鲸网络安全实验室25 分钟前
2026微信小程序抓包全解析:从实操落地到合规风控,解锁前端调试新范式
前端·微信小程序·小程序·抓包·系统代理绕过·https证书严格校验·进程隔离
紫微AI26 分钟前
前端文本测量成了卡死一切创新的最后瓶颈,pretext实现突破了
前端·人工智能·typescript
GISer_Jing26 分钟前
AI前端(From豆包)
前端·aigc·ai编程
IT枫斗者26 分钟前
前端部署后如何判断“页面是不是最新”?一套可落地的版本检测方案(适配 Vite/Vue/React/任意 SPA)
前端·javascript·vue.js·react.js·架构·bug
测试修炼手册26 分钟前
[测试技术] 深入理解 JSON Web Token (JWT)
前端·json