Chrome 开发工具:有啥方法可以排除 URL 与正则表达式匹配的请求?
Posted
技术标签:
【中文标题】Chrome 开发工具:有啥方法可以排除 URL 与正则表达式匹配的请求?【英文标题】:Chrome dev tools: any way to exclude requests whose URL matches a regex?Chrome 开发工具:有什么方法可以排除 URL 与正则表达式匹配的请求? 【发布时间】:2016-11-26 06:14:53 【问题描述】:很遗憾,在 Chrome 的最新版本中,否定网络过滤器不再起作用。我使用这个过滤器来排除每个包含特定字符串的 http 调用。我在 Chrome 开发工具论坛中询问了一个解决方案,但目前没有人回答。
所以我想知道是否有办法使用正则表达式语法来解决这个问题(并排除例如每个包含字符串“loadMess”的调用)。
【问题讨论】:
【参考方案1】:更新(2018 年):
这是对我旧答案的更新,以澄清这两个错误已经修复了一段时间。
否定或排除过滤现在按预期工作。这意味着您可以使用my.com/path
(显示与此匹配的请求)或-my.com/path
(显示与此不匹配的请求)过滤请求路径。
在我的 PR 修复将其投入生产后,该正则表达式解决方案也有效。这意味着您还可以使用/my.com.path/
和/^((?!my.com/path).)*$/
进行过滤,这将达到相同的结果。
我在这里留下了旧答案以供参考,它还解释了否定查找解决方案。
预定义的否定过滤器确实有效,但它目前不允许您对 Chrome 稳定版中的名称执行 NOT
过滤器,只有 CONTAINS
。这是已在 Chrome Canary 中修复的 bug。
将更改推送到 Chrome 稳定版后,您应该可以使用 loadMess
仅过滤该名称,并使用 -loadMess
过滤掉该名称并保留其余部分,就像以前一样。
解决方法:匹配不包含字符串的字符串的正则表达式
^((?!YOUR_STRING).)*$
示例:
^((?!loadMess).)*$
说明:
^
- 字符串开始
(?!loadMess)
- 负前瞻(在此光标处,不匹配下一位,不捕获)
.
- 匹配任何字符(换行符除外)
()*
- 0 个或多个前一组
$
- 字符串结束
更新(2016 年):
我发现 DevTools 如何处理网络面板中的正则表达式实际上存在一个错误。这意味着上面的解决方法不起作用,尽管它是有效的。
网络面板过滤名称和路径(从源代码中发现),但它执行两个 OR'ed 测试。在上述情况下,如果名称中有 loadMess
,但路径中没有(例如,不是域或目录),则两者都将匹配。澄清一下,true || false === true
,这意味着它只会过滤掉loadMess
,如果它同时在名称和路径中找到。
我在 Chromium 中创建了一个问题,随后推送了一个 fix 以供审核。这后来是merged。
【讨论】:
真正完整的解释,但它不起作用......这里有一个例子:s31.postimg.org/53odofq23/Schermata_del_2016_07_22_15_17_59.png。我有 Chrome 版本 52.0.2743.82(64 位) @suikoy 我在过去的一个小时里尝试了一切,但不明白为什么会失败。我在 javascript 中进行了测试,它对我来说很好用。 DevTools 中使用的 Regex 解析器可能存在一些问题。我会继续调查这个。与此同时,我想只使用 Chrome Canary。 @suikoy 我在源代码中发现了问题!我会考虑修复它。如果我设法进行设置并提出拉取请求,那将是非常酷的。我会及时通知你的! @HussienK 已在54.0.2832.2 中修复。 编辑:负前瞻不起作用,-stringToAvoid
似乎起作用,我将使用它【参考方案2】:
此处已回答 - 适用于最新的 Chrome 58.0.3029.110(官方版本)(64 位) https://***.com/a/27770139/4772631
例如:如果我想排除所有 gif,只需输入 -gif
【讨论】:
截至 2019 年 7 月,这对我来说适用于简单的字符串【参考方案3】:在任何地方都建议使用负前瞻,但它不起作用。
相反,“-myregex”确实对我有用。像这样:-/(Violation|HMR)/
。
【讨论】:
这可能是目前唯一正确的答案。【参考方案4】:Chrome broswer dev tools
对正则过滤器的支持不是很好。
当我想隐藏一些请求时,它不起作用,如上所示。但是你可以使用-hide1
-hide2
来隐藏你想要的请求。
就在条件之间留一个空格,这和正则表达式不匹配,我猜原则上可能使用正则表达式以外的字符串匹配
【讨论】:
【参考方案5】:过滤多个不同的网址
您可以否定符号来过滤网络调用。 例如:-lab.com 将过滤 lab.com 网址。
但要过滤多个网址,您可以使用 |正则表达式中的符号 例如:-/lab.com|mini.com/ 这将过滤 lab.com 和 mini.com,您也可以使用它来过滤许多不同的网站或 url。
【讨论】:
【参考方案6】:在最新的 chrome 版本 (62) 上,您必须使用:
-mime-type:image/gif
【讨论】:
以上是关于Chrome 开发工具:有啥方法可以排除 URL 与正则表达式匹配的请求?的主要内容,如果未能解决你的问题,请参考以下文章
有啥方法可以保存 CSS 差异而不是在 Chrome 开发工具中保存整个样式表?
有啥方法可以保存 CSS 差异而不是在 Chrome 开发工具中保存整个样式表?
有啥方法可以扩展 chrome 的 __commandLineAPI
有啥方法可以访问 chrome for android 中的磁力计输入吗?