Python爬取中国天气网天气数据.

一、主题式网络爬虫设计方案

1.主题式网络爬虫名称

名称:Python爬取中国天气网天气数据

2.主题式网络爬虫爬取的内容与数据特征分析

本次爬虫主要爬取中国天气网天气数据

3.主题式网络爬虫设计方案概述(包括实现思路与技术难点)

requests库实现发送请求、获取响应。  
beautifulsoup实现数据解析、提取和清洗  
pyechart模块实现数据可视化

二、主题页面的结构特征分析

 华东地区天气预报  华东天气数据

 conMidtab 页面整体标签

conMidtab2 地区总体标签

三、网络爬虫程序设计

import requests
from bs4 import BeautifulSoup
from pyecharts import Bar

ALL_DATA = []
def send_parse_urls(start_urls):
    headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36"
    }
    for start_url in start_urls:
        response = requests.get(start_url,headers=headers)
        # 编码问题的解决
        response = response.text.encode("raw_unicode_escape").decode("utf-8")
        soup = BeautifulSoup(response,"html5lib") #lxml解析器:性能比较好,html5lib:适合页面结构比较混乱的
        div_tatall = soup.find("div",class_="conMidtab") #find() 找符合要求的第一个元素
        tables = div_tatall.find_all("table") #find_all() 找到符合要求的所有元素的列表
        for table in tables:
            trs = table.find_all("tr")
            info_trs = trs[2:]
            for index,info_tr in enumerate(info_trs): # 枚举函数,可以获得索引
                # print(index,info_tr)
                # print("="*30)
                city_td = info_tr.find_all("td")[0]
                temp_td = info_tr.find_all("td")[6]
                # if的判断的index的特殊情况应该在一般情况的后面,把之前的数据覆盖
                if index==0:
                    city_td = info_tr.find_all("td")[1]
                    temp_td = info_tr.find_all("td")[7]
                city=list(city_td.stripped_strings)[0]
                temp=list(temp_td.stripped_strings)[0]
                ALL_DATA.append({"city":city,"temp":temp})
    return ALL_DATA

def get_start_urls():
    start_urls = [
       "http://www.weather.com.cn/textFC/hb.shtml",
        "http://www.weather.com.cn/textFC/db.shtml",
        "http://www.weather.com.cn/textFC/hd.shtml",
        "http://www.weather.com.cn/textFC/hz.shtml",
        "http://www.weather.com.cn/textFC/hn.shtml",
        "http://www.weather.com.cn/textFC/xb.shtml",
        "http://www.weather.com.cn/textFC/xn.shtml",
        "http://www.weather.com.cn/textFC/gat.shtml",
    ]
    return start_urls

def main():
    """
    主程序逻辑
    展示全国实时温度最低的十个城市气温排行榜的柱状图
    """
    # 1 获取所有起始url
    start_urls = get_start_urls()
    # 2 发送请求获取响应、解析页面
    data = send_parse_urls(start_urls)
    # print(data)
    # 4 数据可视化
        #1排序
    data.sort(key=lambda data:int(data["temp"]))
        #2切片,选择出温度最低的十个城市和温度值
    show_data = data[:10]
        #3分出城市和温度
    city = list(map(lambda data:data["city"],show_data))
    temp = list(map(lambda data:int(data["temp"]),show_data))
        #4创建柱状图、生成目标图
    chart = Bar("中国最低气温排行榜") #需要安装pyechart模块
    chart.add("",city,temp)
    chart.render("tempture.html")

if __name__ == '__main__':
    main()

    四、可视化

柱状图:

 最后:如果你对Python感兴趣,想要学习Python,希望可以帮到你,一起加油!以上是给大家分享的Python全套学习资料,都是我自己学习时整理的:

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

图片

图片

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,还有环境配置的教程,给大家节省了很多时间。

图片

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

图片

四、入门学习视频全套

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

图片

图片

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

图片

图片

 **学习资源已打包,需要的小伙伴可以戳这里:【学习资料】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/752486.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023年第十四届蓝桥杯JavaB组省赛真题及全部解析(上)

目录 前言: 一、试题 A:阶乘求和(填空) 二、试题 B:幸运数字(填空) 三、试题 C:数组分割 四、试题 D:矩阵总面积 五、试题 E:蜗牛 六、试题 F&#xff…

Appium+python自动化(二十九)- 模拟手指在手机上多线多点作战 - 多点触控(超详解)

简介 在网页中我们经常使用缩放操作来便利的查看具体的信息,在appium中使用MultiAction多点触控的类来实现。MultiAction是多点触控的类,可以模拟用户多点操作。主要包含加载add()和执行perform()两个方法. 问题思考 在使用地图App中,我们…

PPT怎么录制视频?这里有你想要的答案!

“有人知道ppt怎么录制视频吗?我正在准备一个关于新产品功能介绍的演示文稿,希望能将我的ppt转化为一个专业且生动的视频讲解。我尝试了一些方法,但不知道从哪里开始。有没有哪位朋友能分享一下自己录制ppt视频的经验吗?” 在数字…

问题解决:python安装依赖时网络问题报错

进行 pip install 时,安装轮子访问过慢而造成安装失败,有时候配置镜像源仍会出现莫名其妙的问题,包括网络代理问题等。看了一些解决方案,找出了一个最适合的方式,如下所示: pip install -i https://pypi.t…

React小记(五)_Hooks入门到进阶

React 16.8 版本 类组件 和 函数组件 两种组件共存,到目前 React 18 版本,官方已经不在推荐使用类组件,在函数组件中 hooks 是必不可少的,它允许我们函数组件像类组件一样可以使用组件的状态,并模拟组件的生命周期等一…

Eclipse代码编辑器自主配色

1. 打开 Eclipse 的设置 - Java - Editor - Syntax Coloring 2. 自定义各种类型的颜色,例如: 1. Interface 勾选,设置为紫色 2. Class 勾选,设置为淡蓝色 3. Abstract classes 勾选,有自己默认的颜色 …

数据分析ClickHouse学习笔记

一、ClickHouse基础 1.1 ClickHouse介绍 ClickHouse是一个用于联机分析(OLAP)的列式DBMS。 简单来说,相比MySQL等行式数据库,数据存储方式是: Rowidis_deltitlesexcreateAt#021a12024/2/18 5:19#130b12024/2/18 8:10#241c12024/2/18 7:38…

开源了!免费合规国内可用的 OpenAI-API 来了

你还在烦恼不能自主构建和调试AI模型吗?你还在为自己的AI项目寻找合适的工具和框架吗?如果你已有一定的AI和python基础,我有一个好消息要告诉你:lang2openai已经开源了!这个开源项目让你可以按照openai的方式使用所有模…

【合作ACM出版,稳定EI、Scopus稳定检索】第五届城市工程与管理科学国际会议(ICUEMS 2024,8月2-4)

第五届城市工程与管理科学国际会议(ICUEMS 2024)将于2024年8月2-4日在天津举行。 会议的目的是为从事城市工程、管理科学相关领域的专家、学者、工程师和技术研究人员提供一个平台,分享科研成果和前沿技术,了解学术发展趋势&…

图象去噪1-使用中值滤波与均值滤波

1、中值滤波 使用中值滤波去除图像的异常像素点,使用cv2.cv2.medianBlur(img, 3)表示再图像在中值滤波窗口3*3的范围内,从下到大排序,将当前值替换为排序中值(如下图所示)将56替换为(56,66,90,…

智慧海洋灾害监测预警系统解决方案

一、概述 近年来,我国海洋经济持续增长,为我国综合国力带来了新机遇。但是,每年由于海洋灾害带来的损失也不可忽略,这些灾害包括:风暴潮、海浪、海冰、海啸动力环境灾害、赤潮、绿潮等等。针对目前海洋监管力量薄弱&am…

Vite: 插件开发

概述 说到自定义的能力,肯定很容易想到 插件机制 ,利用一个个插件来扩展构建工具自身的能力虽然 Vite 的插件机制是基于 Rollup 来设计的,但实际上 Vite 的插件机制也包含了自己独有的一部分,与Rollup 的各个插件 Hook 并非完全兼…

2024年6月京东睡眠呼吸暂停和低通气事件检测赛题-baseline

赛题地址:DC竞赛-大数据竞赛平台 (datacastle.cn) 一、数据集介绍 train_x训练数据集特征描述,其样本分布不均匀,0样本29808,1样本3221,2样本4520,共计37549条样本 第一维度:60 位受试样本数总…

数据恢复篇:如何在Android上恢复删除的短信

如果您不小心删除了Android设备上的短信并想要检索它们,则可以尝试以下方法: 如何在Android上恢复删除的短信 检查您的备份: 如果您之前备份了Android设备,则可以从备份中恢复已删除的短信。检查您设备的内部存储空间或 Google 云…

CentOS停止维护,如何应对?

一、事件背景 2020年12月08日,CentOS官方宣布了停止维护CentOS Linux的计划,并推出了CentOS Stream项目。 更多信息,请参见CentOS官方公告。 版本变化说明CentOS 9不再支持新的软件和补丁更新CentOS 82021年12月31日停止维护服务CentOS 720…

goLang小案例-获取从控制台输入的信息

goLang小案例-获取从控制台输入的信息 1. 案例代码展示 package mainimport ("bufio""fmt""log""os" )var pl fmt.Printlnfunc main() {//控制台输出欢迎提示pl("Hello Go")fmt.Print("what is your name? ")…

20240627优雅草新产品取得原始软件著作权授权

https://doc.youyacao.com/22/2153 20240627优雅草新产品取得原始软件著作权授权 介绍 历程消息:优雅草2024年新产品最新取得原始著作权两份,2款产品将在近期完成为商业授权产品在蜻蜓松鼠官网售卖,本两款产品是智慧园区能源监测管理系统解…

Harris角点检测原理及其在python-opencv的调用

文章目录 原理测试 原理 Harris 角点检测的基本思路如下:考虑一个局部的区域,将其作为一个窗口四处移动,若窗口灰度发生了较大的变化,那么,就认为窗口内存在角点,否则窗口内就不存在角点。 对于图像 I ( …

HBase与Hive数据交互

一、hbase数据导入hive hive通过建立外部表和普通表加载hbase表数据到hive表中。 两种方式加载hbase中的表到hive中,一是hive创建外部表关联hbase表数据,是hive创建普通表将hbase的数据加载到本地。 1.创建外部表 hbase中创建test表,且插入…

没有思考过 Embedding,不足以谈 AI

在当今的人工智能(AI)领域,Embedding 是一个不可或缺的概念。如果你没有深入理解过 Embedding,那么就无法真正掌握 AI 的精髓。接下来,我们将深入探讨 Embedding 的基本概念。 1. Embedding的基本概念 1.1 什么是 Emb…