V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
bengtuo
V2EX  ›  Python

如何爬 html5 游戏?

  •  
  •   bengtuo · 2015-02-23 20:37:42 +08:00 · 3523 次点击
    这是一个创建于 3545 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如一些小html5游戏
    从网页源码里面智能看到主js文件
    但是不知道他引用了多少资源
    js 一般有压缩

    11 条回复    2015-02-25 10:17:15 +08:00
    zsx
        1
    zsx  
       2015-02-23 20:39:29 +08:00   ❤️ 1
    Chrome浏览器直接Ctrl+S就OK
    aaaa007cn
        2
    aaaa007cn  
       2015-02-23 20:46:55 +08:00   ❤️ 1
    python 自动不知道

    手动的话
    手动解码相关 js 然后构造地址

    或者简单粗暴点
    起个代理抓浏览器所有请求

    但如果部分资源延迟加载的话
    还是免不了要手动解码 js 构造地址
    bengtuo
        3
    bengtuo  
    OP
       2015-02-23 20:49:47 +08:00
    @aaaa007cn 成本有点高
    typcn
        4
    typcn  
       2015-02-23 20:53:56 +08:00
    用 node_webkit 模拟浏览
    flyingkid
        5
    flyingkid  
       2015-02-23 20:56:43 +08:00
    我爬过。。需要写chrome extension,分析当前页面的请求。chrome extension提供了webRequest的api,你可以了解一下。不过还是90%需要手动处理一次。

    http://www.ituring.com.cn/article/72769
    bengtuo
        6
    bengtuo  
    OP
       2015-02-23 21:01:43 +08:00
    @typcn 这个我想到过 我不能得到他的请求记录
    typcn
        7
    typcn  
       2015-02-23 21:04:29 +08:00
    @bengtuo 启动 nw 的时候给他设置一个 http proxy ,这个 http proxy 经过的一切请求都下载
    bengtuo
        8
    bengtuo  
    OP
       2015-02-23 22:43:04 +08:00
    @typcn 有教程没 这个不会
    aaaa007cn
        9
    aaaa007cn  
       2015-02-23 23:59:05 +08:00
    只要稍微熟悉 javascript 的几种混淆、压缩方式
    手动解码并不会特别麻烦

    让 node_webkit 走代理
    和浏览器直接走代理没区别啊

    只熟悉 python 的话
    先用 python 起个简单的 http / socks 代理
    现成的代码、库有不少
    然后 selenium 启动浏览器并且设置好代理
    一边访问网站
    一边在代理中过滤目标地址并下载
    zsx
        10
    zsx  
       2015-02-24 18:21:57 +08:00
    @zsx 我错了……我才注意到题主说的是 [只能看到主js文件] ……
    这样的话一般是用模块化开发的,用了如RequireJS、seajs这些库,Ctrl+S是完全没用的……
    这样的话,前者直接搜define('', []中间中括号内的数组,后者直接在主文件里搜关键词 [require] 就可以找到所有引用的js了吧……大概一个正则+递归解决?

    或者直接上Fiddler直接抓浏览器所有请求……这样导出一份URL List下载应该也可以?
    pichina
        11
    pichina  
       2015-02-25 10:17:15 +08:00
    curl 啊,curl可以爬整站,何况html5游戏
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4724 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 04:00 · PVG 12:00 · LAX 20:00 · JFK 23:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.