设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2352|回复: 1
打印 上一主题 下一主题

[交流讨论] 利用网页转文本获取五天的天气预测范例

[复制链接]

Lv4.逐梦者

梦石
0
星屑
14048
在线时间
2070 小时
注册时间
2016-9-20
帖子
844
跳转到指定楼层
1
发表于 2021-3-3 21:16:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 ppspssss 于 2021-7-20 22:41 编辑

https://rpg.blue/thread-484811-1-1.html  原貼地址 @alexncf125 研究了好久

这个找了菜鸟教程里的https://www.runoob.com/regexp/regexp-syntax.html  才学到
我也不知获取天气有什么用 , 本来有可以实时温度和 风向 湿度之类的, 太麻烦弄个简略就算


RUBY 代码复制
  1. module BBwin
  2.     $time=0
  3. def self.获取指定网页源代码 #
  4. #a = url_data("https://price.btcfans.com/") #网页例子
  5. a = url_data("http://i.tianqi.com/index.php?c=code&id=64")
  6. f = File.open("网页源代码.txt","w+")
  7. #f = File.open("网页源代码.txt","w+") #a+意思:讀取,写入,覆盖原文件,文件不存在自动创建
  8. #$a = $a#.to_s
  9. f.write(a) #VX ACE版本要变成变量才行不能单独使用
  10. f.close
  11.  
  12.  
  13. end #def
  14.  
  15.  
  16. def self.获取近五天的天气 #
  17. #f = File.open("网页源代码.txt","w+")
  18. @第几天 = 0
  19. @第几天文字 = ""
  20. @周几 = ""
  21. $subject=[]
  22. $subject = File.readlines("网页源代码.txt")#$subject等于行里所有行数
  23. #p $subject.size
  24.   for i in 0...$subject.size  #遍历所有行数
  25. $subject[i].chomp! #!發生變化并返回
  26. #$subject[i] =~ /比特币价格<(\d+)/i #错误示范
  27. #p $subject[i]
  28. $subject[i] =~ /<div class="date">/#匹配文本中的data-usd="后的数字
  29. if $~ !=nil
  30. #p $~[1]#匹配全部匹配到的的一个变量为$1
  31. #p $subject[i]
  32. end #if
  33.  
  34. if $subject[i].include?("周一")
  35. @周几 = "周一"
  36. elsif $subject[i].include?("周二")
  37. @周几 = "周二"  
  38. elsif $subject[i].include?("周三")
  39. @周几 = "周三"
  40. elsif $subject[i].include?("周四")
  41.   @周几 = "周四"
  42. elsif $subject[i].include?("周五")  
  43. @周几 = "周五"
  44. elsif $subject[i].include?("周六")
  45.   @周几 = "周六"
  46. elsif $subject[i].include?("周日")  
  47. @周几 = "周日"
  48.   end #if
  49.  
  50. $subject[i] =~ /近6天天气预报/
  51.    if $~ !=nil
  52.    a = $subject[i]
  53.    b = a.sub!(/  .*?">/, "")
  54. c = b.sub!(/<.*?\/a>/, "")
  55. c1 = c
  56.   # p c
  57.  
  58.    end #if
  59.  
  60.  
  61. $subject[i] =~ /<p class="degrees">/
  62. if $~ !=nil
  63.    #第几天
  64.    if @第几天 == 0
  65.    @第几天文字 = "第一天(今天)"
  66.    elsif @第几天 == 1
  67.    @第几天文字 = "第二天(明天)"
  68.    elsif @第几天 == 2
  69.    @第几天文字 = "第三天"
  70.    elsif @第几天 == 3
  71.     @第几天文字 = "第四天"
  72.    elsif @第几天 == 4
  73.     @第几天文字 = "第五天"
  74.    elsif @第几天 == 5
  75.     @第几天文字 = "第六天"
  76.  
  77.    end #if
  78.      @第几天 += 1
  79.    a = $subject[i]
  80.  
  81.    #b = a.sub!(/">.*$/, "")
  82.    #b = a.sub!(/">.*?<s/, "")
  83. # b = a.sub!(/">.*?<s/, "")
  84. b = a.sub!(/  .*?">/, "")
  85. c = b.sub!(/<sup>.*?<\/p>/, "")
  86. c2 = c
  87. #p c
  88.  
  89. end #if
  90.  
  91. $subject[i] =~ /<p class="climate">/
  92. if $~ !=nil
  93.    a = $subject[i]
  94.  
  95.  
  96. b = a.sub!(/  .*?">/, "")
  97. c = b.sub!(/<.*?\/p>/, "")
  98. #p c
  99. c3 = c
  100.  
  101. p c1,@第几天文字,c2,c3
  102. end #if
  103.  
  104.  
  105. end #for i
  106.  
  107.  
  108.  
  109.  
  110. end #def
  111.  
  112. end #module


获取本地五天的天气.rar (1.43 MB, 下载次数: 45)
问NPC请 要先点 获取指定网页源代码 再  获取近五天的天气 ,
近6天天气那个无视, 实际就五天,
忘了显示周几那个了, 仅供参考, 不会使用的请勿使用
##此前為2021.3.3号編緝
@有丘直方 发现此人想过有关天气设想, 我想这贴可能符合该楼主之设想, 召唤一下, (发现他5月20日最后登录不知还在不在)
https://rpg.blue/thread-402415-1-1.html

评分

参与人数 2+2 收起 理由
有丘直方 + 1 精品文章
alexncf125 + 1 精品文章

查看全部评分

内容仅供参考,

Lv3.寻梦者

梦石
0
星屑
1934
在线时间
403 小时
注册时间
2015-8-30
帖子
395
2
发表于 2021-7-25 17:11:49 | 只看该作者
我当时想获取天气是为了能在命令行查天气预报,那样更方便(不过好像这样的工具 Google 上能搜到
小仙女一枚~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-26 04:38

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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