python 从4399获取小游戏

Posted 怪皮蛇皮怪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 从4399获取小游戏相关的知识,希望对你有一定的参考价值。

概述

本文章致力于用各种方法将小游戏下载到电脑上,从而满足后期在电脑上训练游戏ai的效果

获取游戏

(我严重怀疑我这篇博客活不久555)

首先要知道游戏在哪

1.首先先找到一款游戏
老爹饼干圣代店

2.查看网页源代码
这步骤主要是找游戏本体的位置
打开到这个页面,然后观察鼠标右键选择查看网页源代码
在这里插入图片描述
这里直接跳过观察部分进入结论
游戏的本体url由 “_strGamePath=” 后面决定
游戏的名字由 "game_title="决定
找到怎么获取一个游戏之后上代码

代码

import requests

# 基础url
host_url = 'http://www.4399.com'
swfbase_url = 'http://sda.4399.com/4399swf'
#根据网页网址,获取游戏
def download_game(url):
    #获取网页源代码
    game_page = requests.get(url).text
    game_page.encoding = 'gb2312'
    
    #找到网页中含有游戏标题的字符
    start =game_page.find("game_title=")
    #标记标题起始位置
    p1=start+14
    #通过向后遍历寻找双引号获取标题结束的位置
    p2=p1+1
    while(game_page[p2]!="\\""):
        p2+=1
    #保存标题
    game_title= game_page[p1:p2]

    #和获取标题一样的方法获取游戏本体的网址
    start =game_page.find("_strGamePath=")
    p1=start+14
    p2=p1+1
    while(game_page[p2]!="\\""):
        p2+=1
    #4399游戏本体的网址是由两部分组成,基址+偏移量
    #我们之前找的都是偏移量,接上基址就是正确的网址
    src_url=swfbase_url + game_page[p1:p2]

    file_type='.'+game_page[p1:p2].split('/')[-1].split('.')[-1]
    # print(file_type)
    if file_type=='.swf':
        #获取本体
        src = requests.get( src_url).content

        #保存
        open( "./"+ game_title+ file_type, "wb" ).write( src )
    else:
        print("只有swf文件才能下载")

if __name__ == '__main__':
    url='http://www.4399.com/flash/91723.htm'
    download_game(url)

打开flash游戏

官网下载flashplayer

理论上下载官方版就能使用,但是实际上我还是下载了大厅版
官方版都不知道怎么开游戏

问题

1. 从网页源码里解析出来的名字中文乱码,我不是很清楚要怎么转成中文
希望如果有人知道这要怎么处理的人,希望您能在下方评论留言造福大家!

以上是关于python 从4399获取小游戏的主要内容,如果未能解决你的问题,请参考以下文章

4399小游戏童年的乐趣,python爬取4399全站小游戏

4399小游戏童年的乐趣,python爬取4399全站小游戏

4399小游戏企业网站搜索引擎优化诊断报告

深度强化学习制作4399小游戏ai

常用python日期日志获取内容循环的代码片段

实践 | Apache Kylin在4399大数据平台的应用