ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

编程训练: 大学计算机 实验4 爬虫、人工智能基础

编程训练: 大学计算机 实验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 **************#
返回列表