【雨滴桌面】简洁的桌面天气,可以说是永不失效的天气数据获取方法 您所在的位置:网站首页 天气壁纸设置桌面 【雨滴桌面】简洁的桌面天气,可以说是永不失效的天气数据获取方法

【雨滴桌面】简洁的桌面天气,可以说是永不失效的天气数据获取方法

2023-05-18 00:43| 来源: 网络整理| 查看: 265

本文参考: “【技术交流】又论天气——来自百度的天气数据抓取”–贴吧 “Rainmeter 天气”–博客

简单说一下,本文参考了上面两个帖子,采用的方法是直接爬取天气网站的HTML页面文档的方法获取到需要的天气数据,所以基本上是永不失效的。主流天气网页的代码一般不会轻易改变,如果改变了,对应调整本皮肤代码即可。

一、效果

雨滴天气皮肤 黄色遮住部分为地区显示,我调整了长度,只显示前三个字(如XX市,XX省,中国显示为XX市)。

二、完整代码 [Rainmeter] Update=1000 [Metadata] Name=天气爬取 Author=少动症患者 Version=V1.0 License=转载请注明原作者 Description=https://blog.csdn.net/Hugo_1st/article/details/106084414 [Variables];变量 Location=https://tianqi.moji.com/ ;-------------------------文档存储-------------------------- [DownloadHTML] Measure=Plugin Plugin=WebParser.dll Header=Cache-Control: no-cache Url=#Location# Download=1 DownloadFile=weather.txt ;-------------------------数据处理-------------------------- ;气温 [MeasureTemp] Measure=Plugin Plugin=WebParser.dll Header=Cache-Control: no-cache Url=#Location# RegExp="(?siU).*(.*)" StringIndex=1 ;图标 [MeasureWeaIco] Measure=Plugin Plugin=WebParser.dll Header=Cache-Control: no-cache Url=#Location# RegExp="(?siU).*" StringIndex=1 Download=1 DownloadFile=1.png ;地点 [MeasureAdd] Measure=Plugin Plugin=WebParser.dll Header=Cache-Control: no-cache Url=#Location# RegExp="(?siU).*(.*),.*.*" StringIndex=1 ;更新时间 [MeasureTime] Measure=Plugin Plugin=WebParser.dll Header=Cache-Control: no-cache Url=#Location# RegExp="(?siU)(.*).*" StringIndex=1 ;-------------------------内容显示-------------------------- [BG] Meter=IMAGE ImageName=bg2.png X=0 Y=0 W=60 H=55 [Temp] Meter=STRING MeasureName=MeasureTemp X=21 Y=23 H=15 W=20 StringStyle=NORMAL FontColor=255,255,255,225 FontSize=10 Fontface=electrofied Postfix="℃" StringAlign=CENTER AntiAlias=1 [WeaIco] Meter=IMAGE MeasureName=MeasureWeaIco X=37 Y=20 W=20 H=20 [Address] Meter=STRING MeasureName=MeasureAdd X=3 Y=5 H=15 W=50 ClipString=1 StringStyle=BOLD FontColor=255,255,255,225 FontSize=8 Fontface=electrofied AntiAlias=1 [UpTime] Meter=STRING MeasureName=MeasureTime X=3 Y=50 H=15 W=65 ClipString=1 StringStyle=NORMAL FontColor=255,255,255,225 FontSize=8 Fontface=electrofied AntiAlias=1 Hidden=1 三、代码简单解读 [Variables];变量 Location=https://tianqi.moji.com/

–Location为使用的天气网站,本文使用了墨迹天气,正常情况会自动定位你的位置,UpdTime是我给后面的每个部分的更新率的统一设置,可能与Update=1000有重复,在本次1.0版中已删去。

–文档存储部分是把网页HTML文档以txt格式存储到本地,文件名为weather.txt,通过这个文档来查找你要爬取的数据位置,便于开发和修改皮肤,也可以直接浏览器查看页面代码来查找数据位置,所以这一段可以去掉。

;气温 [MeasureTemp] Measure=Plugin Plugin=WebParser.dll Header=Cache-Control: no-cache Url=#Location# RegExp="(?siU).*(.*)" UpdateRate=#UpdTime# StringIndex=1

–数据处理部分是使用WebParser.dll来获取网页文档中特定位置的内容,内容的定位在RegExp中。这部分的语法我也不是很熟,表达式以(?siU)开头,然后是我定位当前温度的标签位置为,后面的.*是省略中间内容的意思,然后我们要的温度是在之间,所以在这个地方用(.*),再加StringIndex=1,就是温度的数据了。这里的StringIndex=1是在RegExp表达式中爬取的字段的索引。如果在RegExp表达式中有两个或多个(.*),那么第二个爬取的内容的索引就是StringIndex=2,以此类推。然后你再看图标的爬取就明白了。

;图标 [MeasureWeaIco] Measure=Plugin Plugin=WebParser.dll Header=Cache-Control: no-cache Url=#Location# RegExp="(?siU).*" UpdateRate=#UpdTime# StringIndex=1 Download=1 DownloadFile=1.png

图标代码中RegExp="(?siU).*",(.*)的位置就是源网页HTML文档中天气图标的地址。将该图标下载到本地,存储为1.png,在后面的显示中将这个图标显示出来即可。地点和更新时间的爬取也一样。

–内容显示部分就没什么好说的了,只是这个Fontface=electrofied是字体,没有这个字体的朋友换成其它就好,比如Fontface=微软雅黑。还有就是更新时间默认是隐藏,因为这个皮肤本来就是希望简洁一点,所以背景图片调的也比较小,如果想要显示更新时间,将Hidden=1改为Hidden=0即可。

最后,皮肤还没上传,想要的朋友可以将上面第二部分的完整代码复制后,粘贴到自己创建的txt文档,然后重命名为weather.ini文件(注意改文件扩展名),然后和下面这个背景图放到同一个文件夹下,再将整个文件夹放到雨滴皮肤的Skins文件夹下就可以应用了。

背景图片(命名为bg2.png,与weather.ini放在同一文件夹下): bg2 用这个方法可以修复卷角天气,效果如下: 在这里插入图片描述 **

后续做了一个2.0版(在线数据版)和3.0版(离线数据版),效果是一样的,只是离线版是先把数据下载下来,通过解析本地文件显示,适合偶尔没网的情况,在线数据版是直接获取页面数据显示。与1.0类似,样式做了调整,效果如下:

** 天气2.0 2.0版本取消了背景,只需要ini文件,应用即可,3.0离线版需要下载离线图标。 2.0版本已上传,下载地址:https://download.csdn.net/download/Hugo_1st/12505890

最新5.5版发布:[https://blog.csdn.net/Hugo_1st/article/details/108564723] 最新发布两款自己写的DOCK,需要可隐藏的侧边应用栏或者底部应用栏的小伙伴可以看看:https://blog.csdn.net/Hugo_1st/article/details/107992449

喜欢的朋友点个赞吧,有什么问题欢迎交流

–少动症患者



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有