【Python练习五】Python 正则与网络爬虫实战:专项练习(2道经典练习带你巩固基础——看完包会)

作者:纯.Pure_Jin(g)日期:2026/2/18

第一题

题目:
使用正则完成下列内容的匹配

  • 匹配陕西省区号 029-12345
  • 匹配邮政编码 745100
  • 匹配邮箱 lijian@xianoupeng.com
  • 匹配身份证号 62282519960504337X

代码:

1import re
2# 1. 匹配陕西省区号 029-12345
3pattern_area = r'^029-\d{5}$'  # 精确匹配 029- 开头,后接5位数字
4test_area = '029-12345'
5print("区号匹配:", re.match(pattern_area, test_area) is not None)
6
7# 2. 匹配邮政编码 745100
8pattern_post = r'^\d{6}$'  # 精确匹配6位数字
9test_post = '745100'
10print("邮编匹配:", re.match(pattern_post, test_post) is not None)
11
12# 3. 匹配邮箱 lijian@xianoupeng.com
13pattern_email = r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'
14test_email = 'lijian@xianoupeng.com'
15print("邮箱匹配:", re.match(pattern_email, test_email) is not None)
16
17# 4. 匹配身份证号 62282519960504337X
18pattern_id = r'^\d{17}[\dXx]$'  # 17位数字 + 1位数字或X/x
19test_id = '62282519960504337X'
20print("身份证匹配:", re.match(pattern_id, test_id) is not None)
21

运行结果:
在这里插入图片描述


第二题

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

代码:

1import requests
2import re
3
4# 装饰器:记录爬取任务
5def log_crawl_task(func):
6    def wrapper(url):
7        print(f"开始爬取: {url}")
8        result = func(url)
9        print(f"爬取完成,共获取 {len(result)} 条图片路径")
10        return result
11    return wrapper
12
13# 爬取函数
14@log_crawl_task
15def crawl_school_images(url):
16    try:
17        # 基础请求配置,避免被反爬
18        headers = {"User-Agent": "Mozilla/5.0"}
19        response = requests.get(url, headers=headers, timeout=10)
20        response.encoding = "utf-8"  # 确保中文路径不乱码
21        
22        # 正则提取img标签的src属性
23        img_paths = re.findall(r'<img src="(.*?)"', response.text)
24        return img_paths
25    except Exception as e:
26        print(f"爬取失败: {str(e)}")
27        return []
28
29# 保存路径到本地文件
30def save_image_paths(paths):
31    with open("学校图片路径.txt", "w", encoding="utf-8") as f:
32        f.write("\n".join(paths))
33    print("图片路径已保存到 学校图片路径.txt")
34
35# 调用示例
36if __name__ == "__main__":
37    school_url = "https://www.cqcst.edu.cn"
38    image_paths = crawl_school_images(school_url)
39    if image_paths:
40        save_image_paths(image_paths)
41    else:
42        print("未获取到任何图片路径")
43

运行结果:
在这里插入图片描述
在这里插入图片描述



【Python练习五】Python 正则与网络爬虫实战:专项练习(2道经典练习带你巩固基础——看完包会)》 是转载文章,点击查看原文


相关推荐


Claude Code Agent Teams:3个AI同时写代码,底层原理和主流框架对比
易安说AI2026/2/10

大家好,我是易安,AI超级个体,大厂程序员二孩奶爸。 Claude Opus 4.6 带来了 Agent Teams 功能,可以让多个 Claude Code 实例并行工作。我用它做了个小项目,踩了一些坑,也顺便把底层原理和市面上几个主流多 Agent 框架做了个对比。这篇文章干货比较多,建议收藏。 Agent Teams 到底是什么 简单说就是一个 Lead Agent 可以 spawn 出多个 Teammate Agent,每个 Teammate 是一个完全独立的 Claude Code 会


abigen使用教程 - go版本
Warson_L2026/2/1

在 Web3 后端开发中,abigen 是一个至关重要的工具。它能根据 Solidity 合约生成的 ABI(应用二进制接口)自动生成 Go 语言代码,让你像调用普通 Go 函数一样调用智能合约。 以下是详细的 abigen 使用教程。 第一步:安装 abigen 工具 abigen 是 go-ethereum 项目的一部分。你可以通过以下命令安装: # 安装最新版 abigen go install github.com/ethereum/go-ethereum/cmd/abigen@lat


Verifier-state pruning in BPF
mounter6252026/1/22

The BPF verifier works, on a theoretical level, by considering every possible path that a BPF program could take. As a practical matter, however, it needs to do that in a reasonable amount of time. At the 2025 Linux Plumbers Conference, Mahé Tardy an


Spring设计模式与依赖注入详解
callNull2026/1/14

📚 前言 这是我之前写 项目时的一些理解和感悟, 我喊了AI帮我润色了一下语言文字,发出来了,希望对大家有用 在学习Spring框架时,经常会遇到@Configuration、@Bean、@Service、@Resource等注解,以及各种设计模式的应用。本文通过具体的代码示例(MailConfig和MailService),深入浅出地解释这些概念,帮助理解Spring的核心机制。 🎯 核心问题 问题1:为什么需要@Configuration和@Bean? 问题2:为什么没有注解的类也能被@


多模态大模型有哪些模态?
智泊AI2026/1/6

“多模态”中的“模态”(modality),即指各类数据形式或信息来源。在多模态大模型中,典型模态涵盖以下类别: 更多AI大模型学习视频及资源,都在智泊AI。 文本模态‌: 涵盖自然语言文本、经语音识别转换的文本内容等。 图像模态‌: 指视觉图像数据,例如照片、插画、艺术作品等。 视频模态‌: 包含动态影像序列,如短视频、影视片段、监控录像等。 音频模态‌: 指声学信号数据,如人声、音乐、环境音效等。 其他模态‌: 还包括如环境传感器读数、生理信号、指纹、虹膜等非传统信息形式。 多模态模型的


旮旯c语言三个任务
宇宙超级无敌暴龙战士2025/12/29

#include <stdio.h> // 任务1:计算数组元素和 int getArrSum(int arr[], int len) { int sum = 0; for (int i = 0; i < len; i++) { sum += arr[i]; } return sum; } // 任务2:获取数组最大值 int getArrMax(int arr[], int len) { int max = arr[0]; f


python+django/flask+vue基于spark的西南天气数据的分析与应用系统
Q_Q5110082852025/12/19

目录 项目介绍本项目具体实现截图开发技术大数据类设计开发的基本流程是:论文大纲结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 项目介绍 系统功能 数据采集与清洗:系统通过爬虫技术从多个天气预报网站抓取西南地区的实时天气数据,并通过Spark SQL对数据进行并行计算,提取关键气象指标,并进行多维度分析,如空气质量、降水量、风速等。 数据处理与分析:系统利用Spark对天气数据进行分布式存储与处理,通过数据分析,实时展示西南地区的空气质量、温度变化、降水量、风


Flutter的核心优势
小a彤2025/12/11

欢迎大家加入开源鸿蒙跨平台开发者社区,一起共建开源鸿蒙跨平台生态。#### Flutter:开发效率神器详解 Flutter作为Google推出的跨平台开发框架,凭借其高效的开发体验和出色的性能表现,成为众多开发者的首选。其核心优势在于"一次编写,多端运行"的核心理念,同时提供超过2000个现成的Widget组件库和强大的工具链,显著提升开发效率达30%-50%。 Flutter的核心优势 跨平台一致性 Flutter使用自绘引擎(Skia)直接渲染UI,完全避免了平台原生控件的依赖,确


LLM 扫盲:什么是 Tokens?
mCell2025/12/2

同步至个人网站:LLM扫盲: 什么是tokens LLM 基础:什么是 Tokens? GPT 5.1 发布已经有一段时间了,LLM(大语言模型)的能力边界再一次被拓宽。对于应用开发者而言,虽然模型越来越智能,但 API 的计费逻辑和底层限制依然没有变:Token 始终是那个核心计量单位。 很多人对 Token 有误解,认为它等同于字符(Character)或单词(Word)。这种误解往往导致两个问题:一是预估 API 成本时出现较大偏差,二是无法精确控制 Prompt 的上下文长度,导致模型


一文搞懂激活函数!
aicoting2026/2/27

推荐直接网站在线阅读:aicoting.cn 在深度学习中,激活函数(Activation Function)是神经网络的灵魂。它不仅赋予网络非线性能力,还决定了训练的稳定性和模型性能。那么,激活函数到底是什么?为什么我们非用不可?有哪些经典函数?又该如何选择? 所有相关源码示例、流程图、模型配置与知识库构建技巧,我也将持续更新在Github:AIHub,欢迎关注收藏! 1. 什么是激活函数,为什么需要激活函数 激活函数的核心作用就是为神经网络引入非线性。 为什么需要非线性? 想象一下,如果

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 XYZ博客