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

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、结尾的碎碎念

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

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

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

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

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

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


展开 收起
2评论

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

    校验提示文案

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

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

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