V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
daiv
V2EX  ›  问与答

一网页上 ajax,进行了 GET 操作,如何获取 或者抓取 具体信息?

  •  1
     
  •   daiv · 2014-11-02 01:59:55 +08:00 · 3009 次点击
    这是一个创建于 3675 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大家好,我尝试使用chrome的 Inspect element中的Network来监测,没能看到具体的get过程。
    (我在 yahoo finance的时候,就可以通过类似的方式,抓到:
    

    尝试抓取GET信息网页中的部分js代码:
    var g=this._symbolSearchRequest=$.ajax({type:"GET",dataType:"json",url:f,data:{text:a,exchange:b,type:c}}).done(function(a){e&&e(a)}).always(function(){this._symbolSearchRequest===g&&delete this._symbolSearchRequest})};


    我非常想知道,这个get 的参数,我想抓取一个例子,我就差不多知道参数设置了。


    请问有什么方法 或者 工具来分析 或 抓取这个GET信息么?
    一定要全部看到原js文件?

    谢谢大家。
    第 1 条附言  ·  2014-11-02 03:22:23 +08:00
    感谢hq,通过他介绍的工具charles,分析出,居然是websocket。

    请问是不是 websocket就没有办法读取到数据了?

    谢谢,
    17 条回复    2014-11-03 11:37:43 +08:00
    hq
        1
    hq  
       2014-11-02 02:08:37 +08:00   ❤️ 2
    免费的wireshark,收费的charles都是干这个的
    https://www.wireshark.org/
    http://www.charlesproxy.com/
    daiv
        2
    daiv  
    OP
       2014-11-02 02:19:36 +08:00
    @hq 太感谢了,我立刻试一下!你的ID

    (__) 
      /oo\\________
      \ /     \---\
      \/    /  \  \
       \\_|___\\_|/  *
        ||  YY|
        ||  ||
    hq
        3
    hq  
       2014-11-02 02:25:52 +08:00
    @dalv 我的ID刚注册的,以前的密码忘了,邮箱被gmail关了,找不回来了
    daiv
        4
    daiv  
    OP
       2014-11-02 02:29:13 +08:00
    @hq 请问https 是不是不能抓取呀?
    daiv
        5
    daiv  
    OP
       2014-11-02 02:30:58 +08:00
    @hq 查找了一下,可以https,我在研究研究,charles会比wireshark强很多么?想听听你的经验
    ashamp
        6
    ashamp  
       2014-11-02 03:56:28 +08:00
    这个我得标记一下,用得上
    kisshere
        7
    kisshere  
       2014-11-02 08:33:34 +08:00
    用phantomJs
    libo26
        8
    libo26  
       2014-11-02 09:24:59 +08:00
    我一般用fiddler+IEInspector
    daiv
        9
    daiv  
    OP
       2014-11-02 11:12:42 +08:00
    @kisshere websocket的话,无法获取内容吧
    @libo26 websocket的话,无法获取内容吧
    nealfeng
        10
    nealfeng  
       2014-11-02 12:10:05 +08:00
    在你截图这个界面,点左边那个链接,就会出现新的界面,然后看response就能看到返回结果了。
    pein
        11
    pein  
       2014-11-02 15:57:01 +08:00
    点进去不就能看的到了嘛 参数什么的都能看到啊
    daiv
        13
    daiv  
    OP
       2014-11-02 22:20:13 +08:00
    @nealfeng 这个我知道,我现在用 charles分析出来了。
    daiv
        14
    daiv  
    OP
       2014-11-02 22:20:49 +08:00
    @pein 这个我知道,我现在用 charles分析出来了是 websocket呀。


    @libo26 太好了,我立刻试试,谢谢~
    daiv
        15
    daiv  
    OP
       2014-11-02 23:39:34 +08:00
    @libo26 您好,请问,我现在有办法查看,有办法用python程序获取这些 websocket的消息吗?

    谢谢
    breeswish
        16
    breeswish  
       2014-11-03 11:35:08 +08:00 via Android
    首先从你的截图来看,这就是个普通的 get,不是websockets

    然后,点击这个请求就可以看请求详情了,包括发送到哪里和发送了什么,以及返回了什么。另外在你截图这个地方右侧有个请求来自于,点开以后可以看到具体触发请求的代码。

    最后,对于websocket,也可以直接在chrome审查元素里看。websocket一般状态显示为pending,点开以后frames里就是消息主体

    chrome的审查元素足够强大了,感觉根本不需要其他工具
    breeswish
        17
    breeswish  
       2014-11-03 11:37:43 +08:00 via Android
    对了补充一句,chrome审查元素网路标签要在发请求前打开,一般就是先打开network再刷新,否则你只能获取打开network以后所有的请求,不能获得之前建立的请求(比如保持长连接的websockets一般就会看不到了)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2784 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 07:48 · PVG 15:48 · LAX 23:48 · JFK 02:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.