那年大一,正是桌游系列最火的时候,我接触到了一款桌游《三国斩》,至今已过去九年了。
我曾反复删除安装这款游戏几十余次。
官网:http://sgz.173zy.com/index.php
现在我想复刻这款卡牌游戏。
- 第一步先把相关资料保存下来吧
- 我选择Python(version 3.7)将官网的资料爬出来
- 由于一时不会安装不了Python,我决定更换成nodejs(version v8.12.0)
- 准备获取官网相关资料
- http://sgz.173zy.com/modules/info/infodetail.php?id=220 为一张素材地址
- 先写一个demo获取指定URL素材,代码如下
var http = require('http');
var url = "http://sgz.173zy.com/modules/info/infodetail.php?id=220"; //网页地址
http.get(url, function (res) {
var tmpData = "";
res.on('data', function (data) {
tmpData += data;
});
res.on('end', function () {
console.log(tmpData);
});
}).on('error', function () {
console.log("Error!");
});
- 分析网页代码(如下图,有删减)先找到关键信息点
- 安装cheerio模块对网页代码分析: npm install cheerio
-
目标结果:
- 当前代码
var http = require('http');
var cheerio = require('cheerio');
var url = "http://sgz.173zy.com"; //网页地址
http.get(url = url + "/modules/info/infodetail.php?id=220", function (res) {
var tmpData = "";
res.on('data', function (data) {
tmpData += data;
});
res.on('end', function () {
// console.log(tmpData);
var $ = cheerio.load(tmpData);
$(".sgz_news_r_alllist").each(
(i, e) => {
// console.log(i)
let tmp = $(e).text().replace(/[\r\n]+/g,"\r\n")
if (tmp.length > 0) {
console.log(tmp)
}
})
});
}).on('error', function () {
console.log("Error!");
});
- 接下来用正则表达式获取所有资源链接,格式:/modules/info/infodetail.php?id=220
- 接下来获取所有文字资源
- 接下来获取所有图片资源链接,格式:http://img.173zy.com/uploadimg/tinyfck/Image/2010.10.15/head/69.jpg
文字资料,手动保存就好
图片批量下载,百度找工具就好
明天继续