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

Project1

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

[讨论] 在游戏中获取当天新闻内容(娱乐用)

[复制链接]

Lv4.逐梦者

梦石
0
星屑
14500
在线时间
2148 小时
注册时间
2016-9-20
帖子
860
跳转到指定楼层
1
发表于 昨天 20:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 ppspssss 于 2025-4-19 20:49 编辑

草稿
关于以前的天气贴子:(天气api) 娯乐用 自动检测所在地区天气(使用论譠网友提供的api)
https://rpg.blue/forum.php?mod=viewthread&tid=484877
几年以前问论坛的人获取的下载网页源代码方法URLDownloadToCacheFile Win32api (仅限windows使用)
是类似爬虫的方法 ? , 好像不算爬虫,这里贴子 -- 只是娱乐用 ,所以获取一些标题就行 而不用些网页api接口直接用获取网页,由于不是api接口好像获取内容的没什么特征码就是不能只是新闻标题,全夹杂类信息
以匹配表达式获取新稿标题
我在想如果游戏里获取新的资讯,打开游戏时加载网页 ,在游戏里比如告示板之类的写出来,感觉像只打开游戏也不会错过些新闻(我猜)
想了一种是天气,一种是新闻,是每天都有新的内容, 网站又多适合啥游戏都张贴公示
此次难度较大不是用api获取,要在同一句中重复匹配,

注:加载时网站:
1 生成的记事本txt大小需要尽量小,访问网站速度要尽量快(不同地区不同),时间大于10秒会脚本被备份,比如南方网 350kb ,环球网 110kb 都是合格,环球网更小加载更快(省流),如果访问该网页网速要在50kb/s的话则需要500kb大小以下,
  (有子连结进入后更小只有10kb大小 南方网也有子连结44kb大小) , 也有些网页可能几mb大小就太大基本加载不了
2 网站需能正常获取文本到txt里,有些网站更是无法通过源代码获取文本 ,这种情况就需找其他网页

3需要每个网页都进行制定匹配方案, 要自行分析正规表达式结构,再通过比较  找出合适方案 (有些网页特征码比较少就比较难弄?)

这里用环球网进行例字 (后来用环球网里的 子网页 更好 更小,不过不想改了,要试的话要自己更改)

RUBY 代码复制
  1. module BBwin
  2.  
  3. def self.获取新闻网页源代码 #
  4. #a = url_data("https://price.btcfans.com/") #网页例子
  5. a = url_data("https://www.southcn.com/") #环球网地址,可自行替换
  6. f = File.open("新闻源代码.txt","w+") #a+意思:讀取,写入,覆盖原文件,文件不存在自动创建
  7. #p a
  8. f.write(a) #写入a的内容文件
  9. f.close #文件关闭
  10.  
  11. end #def
  12. def self.获取新闻 #
  13. #f = File.open("网页源代码.txt","w+")
  14. @第几天 = 0
  15. @第几天文字 = ""
  16. @周几 = ""
  17. @总数 =""
  18. @行数 = 0
  19. $subject=[]
  20. $subject = File.readlines("新闻源代码.txt")#$subject等于行里所有行数
  21. #p $subject.size
  22.   for i in 0...$subject.size  #遍历所有行数
  23. $subject[i].chomp! #!發生變化并返回
  24. #$subject[i] =~ /比特币价格<(\d+)/i #错误示范
  25. #p $subject[i]
  26. loop do #由于是同一句中,因此需要反复执行,需检测同一句 (在低版本ruby貌似因没有scan方法(经人工智能询问))
  27. #
  28. #  if ( line1 =~ /<a>(.*?)<b>/ ) #夹杂中的贪婪
  29. $subject[i] =~ /blank">(.*?)</  #非贪婪型重复 匹配"(.*?)"
  30. #注不能以包括"/"衞号, 比如</a>是不行,所以以<
  31.    if ($~ !=nil) and ($~  != "") and ($1 != nil)  #如果是nil(无) “”(空的字串)则不执行
  32.      p $1,$~ #if $1 !=nil #查看匹配结果
  33. #     line1.sub!(/blank">(.*?)</, "")
  34. $subject[i].sub!(/blank">(.*?)</, "") #删除匹配的结果,以免下一次匹到相同无限循环
  35.   # a = $subject[i]
  36.    #b = a.sub!(/  .*?target="_blank">/, "")  #1 #分别删除前的 bababa...查看天气详情">
  37. #if b == nil
  38. #p "nil!!!",@行数
  39. #next
  40. #end
  41.  
  42.   # c = b.sub!(/<.*?\/a>/, "")  #1  #删除后的 <bababa.../a> #这里是匹配天气预报不是第几天
  43. #@总数 += c
  44. #@行数 += 1
  45.   # p c
  46.  
  47.   elsif ($~ ==nil ) #如果匹不到就跳出循环进入下一句而不是同一句(跳出loop do)
  48.     break # loop do for #跳出循环loop do
  49.  
  50.   end #if
  51.   end #loop do for
  52.  
  53.  
  54. #p c1
  55.  
  56.  
  57. end #for i
  58.  
  59. #p @总数
  60. #f = File.open("test.txt","w+")
  61. #f.write(a)
  62. #f.close
  63.  
  64. end #def
  65.  
  66. end #module

@有丘直方
老贴[已经过期] 如何利用网頁讀取簡單的文本 , 用RM打开网頁  https://rpg.blue/thread-409865-1-1.html
下载url脚本(记得是谁给我了,详找老贴子:  )

我贴子内容有很多只是我自己标识的内容代指不是原来意思,偏向发贴当时的想法(后来回看贴发现有很多错误,会造成误导 ),如果想靠谱点应 找相关正确的文章   -- 2025/4/19
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2025-4-20 07:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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