有了它,你就是天气历史库。

2021-11-17 11:56:23 2点赞 8收藏 2评论

创作立场声明:本文所展示代码为自行编写。特别鸣谢www.tianqi.com提供数据支持,如有违规侵权,本人会在收到通知的第一时间进行删除,代码仅供学习参考,禁做它用。

1、需求的诞生

  • LD:'小X,在不?国庆去哪儿玩呀?'

  • 小X:'玩啥玩,回家呆着去。'

  • LD:'也不知道天气怎么样,要不要带两(ni)件(bang)外(wo)套(kan)回(kan)去(ba)呀.'

  • 小X:'.....'


2、摸鱼的日常

  • 既然领导都发话了,闲着也是闲着,不如搞一搞。

  • 作为社畜的小X它熟练的打开了百度想来CV一下,但当他一顿操作下来,发现好像还没有的提过这种奇怪的需求

  • 随即创建了一个短命的小脚本,真·阅后即焚的程度(我觉得吧,这个词用的可能有点不太恰当)

3、废话说话,上代码

  • #!/usr/bin/python3

  • # -*- coding: utf-8 -*-

  • import pandas as pd

  • from lxml import etree

  • from requests import get

  • from threading import Thread

  • # 定义请求头

  • headers = {

  • 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0'

  • # 定义数据暂存池

  • data = [[]for i in range(5)]

  • # 无情的解析器,获取基本数据

  • def jiexi(u):

  • date = u.xpath('div[1]/text()')[0][0:10]

  • zg = u.xpath('div[2]/text()')[0]

  • zd = u.xpath('div[3]/text()')[0]

  • tq = u.xpath('div[4]/text()')[0]

  • fs = u.xpath('div[5]/text()')[0]

  • data[0].append(date)

  • data[1].append(zg)

  • data[2].append(zd)

  • data[3].append(tq)

  • data[4].append(fs)


  • # 残忍的构造器,给解析器下任务

  • def gouzao(diming,year,day):

  • for y in year:

  • rs = get(f'https://lishi.tianqi.com/{diming}/{y}10.html',headers=headers)

  • html = etree.HTML(rs.content)

  • ul = html.xpath("//ul[@class='thrui']/li")[0:day]


  • thread_list = []

  • for u in ul:

  • t1 = Thread(target=jiexi, args=(u,))

  • t1.start()

  • thread_list.append(t1)


  • for t in thread_list:

  • t.join()


  • df =pd.DataFrame(data).T

  • df.columns = ['日期','最高温','最低温','天气','风速']

  • return df



  • if __name__ == '__main__':


  • # 你想查询哪些年份

  • year = ['2020','2019','2018','2017','2016','2015','2014','2013','2012','2011']


  • # 你想查询多少天的数据(默认1号起)

  • day = 8


  • # 你想查询哪儿的天气

  • diqu = 'nanxian'


  • # 来吧,宝贝

  • df = gouzao(diqu,year,day)


  • df.to_csv(r'.weather.csv',encoding='utf-8_sig',index=False)


4、结尾的碎碎念

作为一个小数据工作者,其实拿到这部分数据还是想着做一些可视化的图表出来的,奈何不住我太懒了,就随便套了俩图,希望值友有兴趣能够完善下展示面,共同交流学习呀。

有了它,你就是天气历史库。

有了它,你就是天气历史库。

有了它,你就是天气历史库。

有了它,你就是天气历史库。

有了它,你就是天气历史库。


展开 收起

WPS 金山软件 AI会员1年 金山办公软件官方正版

WPS 金山软件 AI会员1年 金山办公软件官方正版

108元起

Microsoft 微软 OFFICE 365 家庭版 会员

Microsoft 微软 OFFICE 365 家庭版 会员

239元起

Microsoft 微软 OFFICE 365 个人版 办公软件

Microsoft 微软 OFFICE 365 个人版 办公软件

229元起

微软在线发 多年office365家庭版个人版续费新订microsoft365订阅密钥 Microsoft365 个人版 一年 密钥-在线直发咚咚聊天窗口领取

微软在线发 多年office365家庭版个人版续费新订microsoft365订阅密钥 Microsoft365 个人版 一年 密钥-在线直发咚咚聊天窗口领取

209元起

微软微软win10win11专业版授权解决企业化office copilot订阅 授权 copilot订阅服务含税

微软微软win10win11专业版授权解决企业化office copilot订阅 授权 copilot订阅服务含税

3099元起

Microsoft 微软 Office 2016 电子版 送outlook

Microsoft 微软 Office 2016 电子版 送outlook

89元起

ihuman 洪恩 识字子集拼音思维ABC会员永久包3-6岁儿童早教启蒙礼物玩具 识字会员终身包

ihuman 洪恩 识字子集拼音思维ABC会员永久包3-6岁儿童早教启蒙礼物玩具 识字会员终身包

268元起

Microsoft 微软 365/Office 家庭版 文档自动保存 各设备通用 1年盒装版 6人同享

Microsoft 微软 365/Office 家庭版 文档自动保存 各设备通用 1年盒装版 6人同享

289元起

任天堂Nintendo Switch 塞尔达传说 天空之剑 盒装版游戏实体卡带 海外版卡带

任天堂Nintendo Switch 塞尔达传说 天空之剑 盒装版游戏实体卡带 海外版卡带

198元起

WPS 金山软件 超级会员2年卡 赠AI会员

WPS 金山软件 超级会员2年卡 赠AI会员

暂无报价

Microsoft 微软 Office365 个人版 3个月密钥 笔记本电脑 台式机平板 办公必备

Microsoft 微软 Office365 个人版 3个月密钥 笔记本电脑 台式机平板 办公必备

128元起

Microsoft 微软 365 家庭版 电子秘钥 正版高级Office应用 1T云存储

Microsoft 微软 365 家庭版 电子秘钥 正版高级Office应用 1T云存储

289元起

任天堂Switch游戏 NS塞尔达传说 荒野之息 旷野之息 中文现货

任天堂Switch游戏 NS塞尔达传说 荒野之息 旷野之息 中文现货

310元起

Microsoft 微软 Office 家庭和学生版 2021 彩盒包装 适用Windows/MAC

Microsoft 微软 Office 家庭和学生版 2021 彩盒包装 适用Windows/MAC

暂无报价

WPS超级会员4年套餐pdf转word排版PPT润色模板素材

WPS超级会员4年套餐pdf转word排版PPT润色模板素材

暂无报价

Microsoft 微软 365 家庭版 30月

Microsoft 微软 365 家庭版 30月

538元起
2评论

  • 精彩
  • 最新
  • 哈哈,也不知道站内有没有python大佬

    校验提示文案

    提交
  • 代码中缩进去哪里了 [得逞] ,结合前端和数据库,再加上训练分析,开源出来 [邪恶]

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
8
扫一下,分享更方便,购买更轻松