diff --git a/新冠——张嘉宇.ipynb b/新冠——张嘉宇.ipynb new file mode 100644 index 0000000..a51edd9 --- /dev/null +++ b/新冠——张嘉宇.ipynb @@ -0,0 +1,176 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "id": "4c38cdbb", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "200\n", + "today_province_2022_04_12.csv 保存成功\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import json\n", + "import time\n", + "import os\n", + "import requests\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib as mpl\n", + "\n", + "def get_html(Url, header):\n", + " try:\n", + " r = requests.get(url=Url, headers=header)\n", + " #向网站发起请求,并获取响应对象参数url :需要抓取的URL地址headers : 请求头\n", + " r.encoding = r.apparent_encoding\n", + " #改变我们获取的页面的编码方式,因为r.encoding是它在返回信息的头字段中推断的这个页面的可能的编码方式,但是有很大的概率是错误的,错误的编码方式就会引起我们在观察返回的页面信息充满了各种各样的乱码。\n", + " status = r.status_code #状态研发代码\n", + " # 将原始数据类型转换为json类型,方便处理\n", + " data_json = json.loads(r.text) #,因为JSON表示出来就是一个字符串,可以被所有语言读取,也可以方便地存储到磁盘或者通过网络传输,所以通常将python类型的数据转化为JSON类型的数据,完成数据交换\n", + " print(status)\n", + " return data_json\n", + " except:\n", + " print(\"爬取失败\")\n", + "\n", + "\n", + "# 将提取34个省数据的方法封装为函数\n", + "def get_data(data, info_list):\n", + " # 直接提取[\"id\",\"name\",\"lastUpdateTime\"] 的数据\n", + " info = pd.DataFrame(data)[info_list]\n", + "\n", + " # 获取today的数据\n", + " today_data = pd.DataFrame([province[\"today\"] for province in data])\n", + " # 修改列名\n", + " today_data.columns = [\"today_\" + i for i in today_data.columns]\n", + "\n", + " # 获取total的数据\n", + " total_data = pd.DataFrame([province[\"total\"] for province in data])\n", + " # 修改列名\n", + " total_data.columns = [\"total_\" + i for i in total_data.columns]\n", + "\n", + " return pd.concat([info, today_data, total_data], axis=1)\n", + "\n", + "\n", + "def save_data(data, name):\n", + " \"\"\"定义保存数据的函数\"\"\"\n", + " # 保存的文件名名称\n", + " file_name = name + \"_\" + time.strftime(\"%Y_%m_%d\", time.localtime(time.time())) + \".csv\"\n", + "\n", + " data.to_csv(file_name, index=None, encoding=\"utf_8_sig\")\n", + "\n", + " # 检查是否保存成功,并打印提示文本\n", + " if os.path.exists(file_name):\n", + " print(file_name + \" 保存成功\")\n", + " else:\n", + " print('保存失败')\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " # 访问网易实时疫情播报平台网址\n", + " url = \"https://c.m.163.com/ug/api/wuhan/app/data/list-total\"\n", + "\n", + " # 设求置请头,伪装为浏览器\n", + " headers = {\n", + " 'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) \\\n", + " AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'\n", + " }\n", + "\n", + " \"\"\"爬取中国各省的疫情数据\"\"\"\n", + " # 1.获取数据(此时的数据未经处理)\n", + " datas = get_html(url, headers)\n", + "\n", + " # 2.找到储存中国34省的数据所在\n", + " data_province = datas[\"data\"][\"areaTree\"][2][\"children\"]\n", + "\n", + " # 3.提取34个省数据\n", + " all_data = get_data(data_province, [\"id\", \"name\", \"lastUpdateTime\"])\n", + "\n", + " # 4.持久化保存数据\n", + " save_data(all_data, \"today_province\")\n", + "\n", + "mpl.rcParams['font.family']=[\"DengXian\", \"sans-serif\"] # 设置字体样式\n", + "\n", + "labels = ['香港', '湖北', '吉林', '台湾', '上海']\n", + "men_means = [308426, 68392, 37897, 28040, 12283]\n", + "women_means = [251, 0, 187, 630, 917]\n", + "men_std = [2, 3, 4, 1, 2]\n", + "women_std = [3, 5, 2, 3, 3]\n", + "width = 0.35\n", + "# 它是用来创建 总画布/figure“窗口”的,有figure就可以在上边(或其中一个子网格/subplot上)作图了,做一个1*1的图,\n", + "fig, ax = plt.subplots()\n", + "# bar()函数参数说明\n", + "# x 一个标量序列,代表柱状图的x坐标,默认x取值是每个柱状图所在的中点位置,或者也可以是柱状图左侧边缘位置。\n", + "# height 一个标量或者是标量序列,代表柱状图的高度。\n", + "# width 可选参数,标量或类数组,柱状图的默认宽度值为 0.8。\n", + "# bottom 可选参数,标量或类数组,柱状图的y坐标默认为None。\n", + "# algin 有两个可选项 {\"center\",\"edge\"},默认为 'center',该参数决定 x 值位于柱状图的位置\n", + "#tick_label 条形图的刻度标签。默认值。无 (使用默认的数字标签。)\n", + "# xerr, yerr: 分别针对水平、垂直型误差\n", + "ax.bar(labels, men_means, width, yerr=men_std, label='总计')\n", + "ax.bar(labels, women_means, width, yerr=women_std, bottom=men_means, label='新增')\n", + "# ylabel:此参数是标签文本。\n", + "ax.set_ylabel('新冠')\n", + "ax.set_title('2022-4-11')\n", + "# 说明图例的位置等相关属性,直接调用legend(),不传入任何参数,将会自动获取图例句柄和与之相对应的图例标签\n", + "ax.legend()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ff3f0a15", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}