代码之家  ›  专栏  ›  技术社区  ›  human

如何以编程方式从网络选项卡捕获查询字符串参数

  •  9
  • human  · 技术社区  · 8 年前

    我正在尝试使用javascript捕获查询字符串参数以进行分析。我搜索了一下,发现了 BMP

    我使用以下代码使用 browsermob-proxy 为了得到har文件,但我得到 ERROR: browsermob-proxy returned error

    getHarFile() {
            const proxy = browsermb.Proxy;
            const pr = new proxy({host:"0.0.0.0",port:4444});
            pr.doHAR("http://www.cnn.com/", (err,data) => {
                if (err) {
                    logger.debug('ERROR: ' + err);
                } else {
                    fs.writeFileSync('ua.com.har', data, 'utf8');
                    logger.debug("#HAR CREATED#");
                }
            })
        }
    

    enter image description here

    3 回复  |  直到 8 年前
        1
  •  5
  •   Frankusky    8 年前

    因此,由于我不太确定您的范围,我将向您提出一些想法:

    1、修复browsermob代理

    您应该更改browsermob代理的主机和代理。将主机更改为127.0.0.1,并将端口更改为任意随机数(4444,可以)。然后,通过更改浏览器设置,确保浏览器在该主机和代理中运行。

    2.1获取当前页面查询字符串

    您可以使用 location.search 。如果您使用的是带有selenium的BDD框架,则可以执行javascript代码并检索结果。您应该始终添加一个 return

    2.2使用性能API

    performance api

    performance.getEntriesByType("navigation")
    

    如果您想获取页面呼叫的一些信息,可以使用以下工具访问:

    performance.getEntriesByType("resource")
    

    这将返回您的站点发出的所有呼叫。你必须循环搜索你想要找到的资源。


    在所有方法中,都无法像在网络选项卡中那样获取查询字符串的值和键。您必须使用函数手动将其分离,您可以使用代码 provided here

        2
  •  3
  •   quirimmo    8 年前

    我的建议是为Google Chrome创建您的个人扩展,并开发一个扩展,您可以访问控制台中默认不可用的其他几个API。

    chrome.devtools.network

    这里有两个有用的链接:

    https://developer.chrome.com/extensions/devtools

    https://developer.chrome.com/extensions/devtools_network

    我希望有帮助

        3
  •  1
  •   human    8 年前

    我终于可以用 s 对象在chrome控制台上可用。带有编码查询字符串的url可用作 s.rb