编程训练: 大学计算机 实验4 爬虫、人工智能基础
第1关requests 基础任务描述本关任务编写一个 requests 请求网页的程序。相关知识为了完成本关任务你需要掌握requests 的安装和 requests 的常用方法。requests 的安装我们之前介绍了 urllib 库的使用它是作为爬虫入门工具来介绍的对新手理解 Python 爬虫的整个流程很有帮助。在掌握了爬虫基本思想流程后就需要引入更高级的工具来提高我们的开发效率这里就开始给大家介绍 requests 库的使用。如果本地 Python 环境没有安装 requests可以在命令提示符窗口输入命令pip install requests安装 requests 模块如下图所示。测试答案:importrequests def get_html(url): 两个参数 :param url:统一资源定位符,请求网址 :param headers:请求头 :return:html# ***************** Begin ******************** ## 请补充请求头headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36}# get请求网页responserequests.get(url,headersheaders)# 获取网页信息文本htmlresponse.text# ***************** End ******************** #returnhtml第2关requests 进阶任务描述本关任务使用 session 编写爬取网页的小程序。相关知识为了完成本关任务你需要掌握cookie 与 session 的使用。cookie的使用当你浏览某网站时Web 服务器会修改修改你电脑上的 Cookies 文件它是一个非常小的文本文件可以记录你的用户 ID 、密码、浏览过的网页、停留的时间等信息。 当你再次来到该网站时网站通过读取 Cookies 文件得知你的相关信息从而做出相应的动作如在页面显示欢迎你的标语或者让你不用输入 ID、密码就直接登录等等。下面演示如何在 requests 中使用 Cookies 以百度搜索为例在开发者工具查看请求头信息如下测试答案:importrequests def get_html(url): 两个参数 :param url:统一资源定位符,请求网址 :param headers:请求头 :return html 网页的源码 :return sess 创建的会话# ***************** Begin ******************** ## 补充请求头headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36}# 创建Sessionsessrequests.session()# 使用Session的get请求网页responsesess.get(url,headersheaders)# 获取网页信息文本htmlresponse.text# ****************** End ********************* #returnhtml, sess第3关鸢尾花识别任务描述本关任务使用sklearn完成鸢尾花分类任务。相关知识为了完成本关任务你需要掌握如何使用sklearn提供的DecisionTreeClassifier。数据简介鸢尾花数据集是一类多重变量分析的数据集。通过花萼长度花萼宽度花瓣长度花瓣宽度4个属性预测鸢尾花卉属于(SetosaVersicolourVirginica)三个种类中的哪一类(其中分别用012代替)。数据集中部分数据与标签如下图所示测试答案:importpandas as pd from sklearn.treeimportDecisionTreeClassifier#********* Begin *********##读取训练集数据train_dfpd.read_csv(./step5/train_data.csv).as_matrix()#读取训练标签数据train_labelpd.read_csv(./step5/train_label.csv).as_matrix()#读取测试集数据test_dfpd.read_csv(./step5/test_data.csv).as_matrix()#建立DecisionTreeClassifier对象dtDecisionTreeClassifier()#训练模型dt.fit(train_df, train_label)resultdt.predict(test_df)resultpd.DataFrame({target:result})#保存测试集的预测结果result.to_csv(./step5/predict.csv,indexFalse)#********* End *********#第4关手写数字识别任务描述本关任务使用sklearn中的LogisticRegression类完成手写数字识别任务。相关知识为了完成本关任务你需要掌握如何使用sklearn提供的LogisticRegression类。数据简介本关使用的是手写数字数据集该数据集有 1797 个样本每个样本包括 8*8 像素实际上是一条样本有 64 个特征每个像素看成是一个特征每个特征都是float类型的数值的图像和一个 [0, 9] 整数的标签。比如下图的标签是 2 sklearn为该数据集提供了接口若想使用该数据集代码如下from sklearnimportdatasetsimportmatplotlib.pyplot as plt#加载数据集digitsdatasets.load_digits()#X表示图像数据y表示标签Xdigits.data ydigits.target#将第233张手写数字可视化plt.imshow(digits.images[232])测试答案:from sklearn.linear_modelimportLogisticRegression def digit_predict(train_image, train_label, test_image): 实现功能训练模型并输出预测结果 :param train_sample: 包含多条训练样本的样本集类型为ndarray,shape为[-1,8,8]:param train_label: 包含多条训练样本标签的标签集类型为ndarray :param test_sample: 包含多条测试样本的测试集类型为ndarry :return: test_sample对应的预测标签#************* Begin ************## 训练集变形flat_train_imagetrain_image.reshape((-1,64))# 训练集标准化train_minflat_train_image.min()train_maxflat_train_image.max()flat_train_image(flat_train_image - train_min)/(train_max - train_min)# 测试集变形flat_test_imagetest_image.reshape((-1,64))# 测试集标准化test_minflat_test_image.min()test_maxflat_test_image.max()flat_test_image(flat_test_image - test_min)/(test_max - test_min)# 训练--预测logregLogisticRegression(C4.0,solverlbfgs,max_iter100)logreg.fit(flat_train_image, train_label)returnlogreg.predict(flat_test_image)#************* End **************#

相关新闻

硬件RAID配置全解析:从原理到实战,构建高可用存储方案

硬件RAID配置全解析:从原理到实战,构建高可用存储方案

1. 项目概述:硬件RAID配置的核心价值与场景 在数据存储的世界里,速度和可靠性往往是一对难以调和的矛盾。单块硬盘,无论是性能强悍的NVMe固态,还是容量可观的机械盘,都面临着单点故障的风险。一旦硬盘“罢工”&#xf…

2026/10/18 7:10:23 阅读更多 →
CentOS服务器性能排查与健康检查:从硬件到进程的完整诊断指南

CentOS服务器性能排查与健康检查:从硬件到进程的完整诊断指南

1. 项目概述:为什么我们需要掌握服务器“体检”命令 想象一下,你负责维护一台承载着关键业务的CentOS服务器。某天深夜,你接到告警电话,说应用响应变得极其缓慢。你第一时间登录服务器,面对黑漆漆的命令行,…

2026/10/18 6:50:07 阅读更多 →
信号包络检测:从原理到实战,掌握希尔伯特变换与低通滤波核心方法

信号包络检测:从原理到实战,掌握希尔伯特变换与低通滤波核心方法

1. 项目概述:信号包络检测到底是什么? 在信号处理的世界里,我们常常面对的是各种“原始”的波形。比如,你从麦克风录下一段语音,或者从传感器采集到一段振动数据,它们看起来就是一条上下起伏、错综复杂的曲…

2026/10/17 22:34:48 阅读更多 →

最新新闻

开箱即用的 diff 级代码审查 CLI 工具设计与实践

开箱即用的 diff 级代码审查 CLI 工具设计与实践

1. 项目概述:一个真正“开箱即用”的代码审查 CLI 工具,不是概念演示,而是每天能塞进你 Git 提交流程里的硬核助手“open-code-review”这个名字乍看平平无奇,但拆开来看,每个词都踩在当下工程效能的痛点上。“open”不…

2026/10/19 3:42:16 阅读更多 →
open-code-review:面向 Git 变更的 CLI 代码审查协作者

open-code-review:面向 Git 变更的 CLI 代码审查协作者

1. 这不是又一个“AI代码审查”玩具:open-code-review 的真实定位与设计哲学 你肯定见过太多打着“AI代码审查”旗号的工具——点开网页,粘贴几行代码,等三秒,弹出几条泛泛而谈的“建议”,比如“变量名可以更语义化”…

2026/10/19 3:42:16 阅读更多 →
开源CLI代码审查工具:可审计、可定制的LLM增强型质量保障方案

开源CLI代码审查工具:可审计、可定制的LLM增强型质量保障方案

1. 项目概述:这不是又一个“AI写代码”玩具,而是一套可嵌入真实开发流水线的开源代码审查协作者“open-code-review”这个名字乍看平平无奇,但拆开来看——open(开源)、code(代码)、review&…

2026/10/19 3:42:16 阅读更多 →
AI原生应用的内容生成全链路:从意图识别到质量保障与成本优化

AI原生应用的内容生成全链路:从意图识别到质量保障与成本优化

最近帮一个内容团队梳理技术方案,对方把预算几乎全部压在"调用大模型"这一项上,觉得只要选一个足够聪明的模型,内容生成就解决了。我在他们那份方案旁边补了整整三页注释:意图解析怎么做、生成结果谁来校验、用户反馈怎…

2026/10/19 3:42:16 阅读更多 →
基于协同过滤的电影推荐系统:SpringBoot+Vue3+MyBatis全栈实战

基于协同过滤的电影推荐系统:SpringBoot+Vue3+MyBatis全栈实战

做推荐系统这件事,很多人第一反应是"算法很难"。但当我真正把一个 Java SpringBoot Vue3 MyBatis 的协同过滤电影推荐系统,从前端页面到后端算法完整跑通之后,最大的体会是:算法本身就是整个项目里相对好啃的部分&…

2026/10/19 3:42:16 阅读更多 →
AI辅助编写教材:从查重原理到个性化改写的完整实战

AI辅助编写教材:从查重原理到个性化改写的完整实战

很多人第一次拿到AI生成的教材初稿时,心里其实是犯嘀咕的:内容看起来像那么回事,但送去查重一测,重复率愣是能冲到百分之四五十,个别段落甚至被标红一大片。这其实是AI写教材最常见的翻车现场,也是这篇文章…

2026/10/19 3:41:16 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →