又来跟你们唠叨唠叨两句~

这不最近的天气大降温,搞的我直接着凉胃痛一天,不知道你们那边是不是,长沙反正是跳崖式降温,折磨死我了

python 测温系统_python 测温系统

正好拿出之前的爬虫+数据分析案例,来教你们采集采集天气数据,然后顺便展示一下数据分析(这个也可以做毕设或者课堂作业哦)

python 测温系统_python_02

知识点

  • 动态数据抓包
  • requests发送请求
  • 结构化+非结构化数据解析

开发环境

  • python 3.8 运行代码
  • pycharm 2022.3.2 辅助敲代码 专业版
  • requests 发送请求 pip install requests
  • parsel 解析数据 pip install parsel

如何安装python第三方模块:

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests)回车
  2. 在pycharm中点击Terminal(终端) 输入安装命令

代码实现:

  1. 发送请求
  2. 获取数据
  3. 解析数据
  4. 保存数据

爬虫案例实现

一. 思路分析

找到数据来源 静态的数据? 动态的数据?

network 抓包分析

完整代码【文末名片点击领取】

import requests     # 第三方模块 提前安装  发送请求 (Python里面浏览器)  爆红是因为你没有安装模块
# 如果安装了 但还是爆红是因为什么呢? 解释器在pycharm里面配置的不对
import parsel
import csv

除了代码,还需要其他资料的 【点击文末名片】

python 测温系统_课程设计_03

python 测温系统_课程设计_04

f = open('天气数据.csv', mode='a', newline='', encoding='utf-8')
csv_writer = csv.writer(f)
csv_writer.writerow(['日期','最高温度','最低温度','天气', '风向','城市'])
areaList = [54511, 58362, 59287, 59493]
for areaId in areaList:
    if areaId == 54511:
        area = "北京"
    elif areaId == 58362:
        area = "上海"
    elif areaId == 59287:
        area = "广州"
    else:
        area = "深圳"
        690643772 ### 源码领取
    for year in range(2011, 2023):
        for month in range(1, 13):
            url = f'https://'
  1. 发送请求
response = requests.get(url)
  1. 获取数据

.text: 获取文本内容
.content: 二进制数据 图片/音频/视频
.json(): 获取json数据 字符串 {“”:“”,“”:“”, “”:“”}

json_data = response.json()
  1. 解析数据

解析的是什么数据?
结构化数据: json数据 字典取值提取内容
非结构化数据: 网页源代码 css/xpath/re bs4/lxml/parsel/re…

html_data = json_data['data']
# tr
select = parsel.Selector(html_data)
trs = select.css('tr')[1:]
for tr in trs:690643772 ### 源码领取
   # .get(): 获取单个标签
   # .getall(): 获取所有标签
   td = tr.css('td::text').getall()
   td.append(area)
   csv_writer.writerow(td)
   print(td)

效果展示

这里就稍微展示展示部分效果咯

python 测温系统_数据_05

python 测温系统_数据_06