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游戏
理论上下载官方版就能使用,但是实际上我还是下载了大厅版
官方版都不知道怎么开游戏
问题
1. 从网页源码里解析出来的名字中文乱码,我不是很清楚要怎么转成中文
希望如果有人知道这要怎么处理的人,希望您能在下方评论留言造福大家!
以上是关于python 从4399获取小游戏的主要内容,如果未能解决你的问题,请参考以下文章
4399小游戏童年的乐趣,python爬取4399全站小游戏