请选择 进入手机版 | 继续访问电脑版

新模拟器共享论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

     
 
1 2

最近看过此主题的会员

查看: 168|回复: 3

【破事水】爬取Romhacking网站信息和资料的爬虫开发

  [复制链接]

签到天数: 367 天

[LV.9]以坛为家II

评论头像

发表于 2021-4-30 15:36:00 | 显示全部楼层 |阅读模式
很久没有正经发帖了,今天先水一波~
最近闲来无事,对romhacking的网站中的修改板块(hacks)的网页进行了研究,发现这个板块内的改版资料相当详尽,结构也很不错,所以准备写一个爬虫来爬romhacking网站的资源,写一个自动输出游戏文件的小脚本。
本来设计思路是这样的:

改版网页基本资料爬取——改版用户手册Readme file 爬取——改版游戏预览图爬取——调用翻译模块进行机翻保存为中文资料

这些内容很容易就能实现,我自己写了一个小程序,可以爬取全部改版页面的游戏资料。测试了5901到5913的改版游戏页面,测试结果如下(翻译模块之后换个网络好点的地方进行):


既然已经能够爬取网页信息,我就开始考虑新的内容。第一阶段爬取信息已经完成,第二阶段如何爬取游戏补丁文件,然后自动打补丁并输出成品游戏文件。
思路是这样的:
获取验证码——浏览器模拟操作输入验证码并下载——下载文件后转移至第一阶段建立的游戏文件夹——从数据库内利用SHA和CRC32码找到原版rom——调用外部程序进行rom打补丁——重命名游戏文件并归档

理想很丰满,现实很骨感。
由于romhacking网站的下载验证码是明码,很容易就能在开发者模式内看到验证码,使用浏览器模拟操作可以很容易实现自动化填写并下载文件,前两个步骤挺好实现。
可惜的是发现romhacking网站的robots限制了\download\页面,一般的方法很容易就会被服务器干掉,不得不采用单线程、长间隔下载,使得效率极其低下,5900多个游戏,每个游戏得花费5分钟,太慢了。
另外下载文件时,由于使用的是浏览器geckodriver或者edge内核,导致无法指定下载位置,下载完成后,也很难精确转移至对应游戏文件夹。
最后,最坏的情况出现了,我没有找到能够调用外部参数进行打补丁的软件,代码层面的二进制打补丁我根本找不到相关资料(懒得找了,头疼),所以就算下载下来文件,也必须手动打补丁。
于是乎只能弃坑了


好了水完了,提前祝大家劳动节快乐哈~~~
顺便可以关注一波我的b站账号,主要玩FC改版游戏,谢谢大佬们:https://space.bilibili.com/2262125

本帖子中包含更多资源

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

x

评分

1

查看全部评分

回复

使用道具 举报

签到天数: 1669 天

[LV.Master]伴坛终老

评论头像(1)

发表于 2021-5-1 05:27:37 | 显示全部楼层
而且补丁还分很多种补丁,每个HACK有若干不同补丁等情况。
楼主这种想法,应该早就有人做过。
所以网站有了预防措施
[发帖际遇]: willzyjno1 乐于助人,奖励 1 个 魅力. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

签到天数: 10 天

[LV.3]偶尔看看II

评论头像

发表于 2021-5-3 11:18:31 | 显示全部楼层
我抓取过很多网站,通常遇到这种有验证码的,都是直接没戏。
[发帖际遇]: sosovipp 发帖时在路边捡到 4 个 魅力,偷偷放进了口袋. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

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

本版积分规则

新模拟器共享论坛X

翻译WIKI大量成长力和金钱奖励!

访问http://wiki.nesbbs.com,翻译词条到论坛指定区,每一个完成翻译并有采纳的,有成长力等奖励哟...

点击查看详情 

QQ|申请友链|小黑屋|手机版|Archiver|新模拟器共享网 ( 辽ICP备09001055号|繁體中文

GMT+8, 2021-6-13 18:39 , Processed in 0.124801 second(s), 32 queries , XCache On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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