吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3517|回复: 40
收起左侧

[Python 原创] 中央气象台-天气图爬取

[复制链接]
wsy11 发表于 2022-11-22 21:27
本人学习的是大气科学,最近在学天气学,需要分析中央气象台的天气图,所以做了个爬虫爬取。
(网站上的图片只保留最近几天,所以可以自己爬取下来留存)

示例

示例


[Python] 纯文本查看 复制代码
import os
import re
import requests
from bs4 import BeautifulSoup
# url='http://www.nmc.cn/publish/observations/asia/dm/weatherchart-h000.htm'
l1=['china','asia','north']
l2=['000','925','850','700','500','200','100']
l3=['weatherchart','cloud']
l4=['weatherchart','radar']
l5=['weatherchart']
urls=[]
names=[]
# url='http://www.nmc.cn/publish/observations/'+l1[i]+'/dm/'+l3[k]+'-'+'h'+l2[j]+'.htm'

for i in range(3):
    for j in range(len(l2)):
        if i==0 and j==0:
            url='http://www.nmc.cn/publish/observations/china/dm/radar-h000.htm'
            urls.append(url)
            name='china000cloud'
            names.append(name)
            url='http://www.nmc.cn/publish/observations/china/dm/weatherchart-h000.htm'
            urls.append(url)
            name='china000weatherchart'
            names.append(name)
        elif i==2:
            url='http://www.nmc.cn/publish/observations/'+l1[i]+'/dm/'+'weatherchart-'+'h'+l2[j]+'.htm'
            urls.append(url)
            name=l1[i]+'weatherchart'+l2[j]
            names.append(name)
        else:
            for k in range(2):
                url='http://www.nmc.cn/publish/observations/'+l1[i]+'/dm/'+l3[k]+'-'+'h'+l2[j]+'.htm'
                urls.append(url)
                name=l1[i]+l2[j]+l3[k]
                names.append(name)

# print(urls)  
for i in range(len(urls)):
    url=urls[i] 
    name=names[i]
                       
    #2、更改爬虫头部信息
    kv = {'user-agent':'Mozilla/5.0'}
    
    r=requests.get(url,headers=kv)
    
    
    
    #更改编码方式
    r.encoding=r.apparent_encoding
    
    demo= r.text
    soup = BeautifulSoup(demo,"html.parser")
    #页面的title
    # print(soup.prettify()[54000:58000])
    
    
    r=soup.find_all(id='timeWrap')[0]
    #删去第一个,共41组数据
    plist = re.split('data-img',str(r))[1:]
    nlist=re.split('data-time',str(r))[1:]
    n=nlist[0].split('"')[1].split()

    
    for i in range(len(plist)):
        p=plist[i].split()[0][2:-2]
        # print(p)
        n=nlist[i].split('"')[1].replace('/', '.').replace(' ','.').replace(':00','')
        path = 'D:/tianqitu/'+name+'/'+name+n+'.jpg'
        print(path)
        

        url=p
        z=requests.get(url)
        with open(path, 'wb') as f:
            f.write(z.content)
        #关闭文件
        f.close()
        print(name+n)

免费评分

参与人数 7吾爱币 +8 热心值 +7 收起 理由
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
random1 + 1 + 1 我很赞同!
ccccq030716 + 1 谢谢@Thanks!
冬天冷了多穿点 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!弄个定期自动爬取,棒
meilidemm + 1 谢谢@Thanks!
poster1 + 1 + 1 我很赞同!
guyuelintian + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

JohnDragon 发表于 2022-11-23 22:24
oshuanghao 发表于 2022-11-23 09:24
学大气科学的还是好进,但是都需要考试面试的

看来要学很多相关专业  理科性的吧
oshuanghao 发表于 2022-11-23 09:24
JohnDragon 发表于 2022-11-23 02:32
这个部门好进不????

学大气科学的还是好进,但是都需要考试面试的
saker1 发表于 2022-11-23 01:21
oshuanghao 发表于 2022-11-23 02:21
我也是气象部门的
JohnDragon 发表于 2022-11-23 02:32
oshuanghao 发表于 2022-11-23 02:21
我也是气象部门的

这个部门好进不????
One95 发表于 2022-11-23 04:10
羡慕大佬想爬就爬
istat 发表于 2022-11-23 06:40
谢谢分享。
逐雅斋 发表于 2022-11-23 07:13
这个不错,感谢分享源码
lyckligdag 发表于 2022-11-23 07:53
看看学习下,应该可以爬取追台风的各个网站的一手图片发贴吧
ysjd22 发表于 2022-11-23 07:54
厉害了。谢谢
qqdns 发表于 2022-11-23 08:03
oshuanghao 发表于 2022-11-23 02:21
我也是气象部门的

精神都狠人
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 23:04

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表