【问题标题】:Fiddler does not capture my script's requestsFiddler 没有捕获我的脚本请求
【发布时间】:2011-10-06 22:42:27
【问题描述】:

我的代码:

proxy = urllib2.ProxyHandler({'http': '127.0.0.1:8888'})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
f = urllib2.urlopen('http://www.google.com')
print f.read()
此请求未显示在 Fiddler 的捕获中,有人知道如何配置 Fiddler 以便捕获该请求吗?

编辑:请求有效,我可以看到内容。此外,如果我关闭 Fiddler,请求会按预期失败,因为没有代理。只是我在 Fiddler 中什么都看不到。

EDIT2:我看到来自我编写的 .NET 测试控制台应用程序的流量。但我没有看到来自我的 python 脚本的流量。

【问题讨论】:

  • 请求有效吗? (即:它实际上是在抓取谷歌的内容吗?)
  • 是的,我已经编辑了问题。
  • 听起来您可能设置了过滤器:fiddler2.com/fiddler/help/faq.asp#missingtraffic
  • 谢谢。我没有设置过滤器...“过滤器”选项卡的所有字段都变灰,因为未选中“使用过滤器”复选框。 “进程过滤器”也没有设置。

标签: python fiddler


【解决方案1】:

我遇到了完全相同的问题,当fiddler2 打开时,即使我改变了 proxy = urllib2.ProxyHandler({'http': 'http://asdfl.com:13212/'})(如没有现有的代理服务器),它仍然可以获取页面内容,我猜可能当代理服务器已经被fiddler2设置了,urllib2由于某种原因完全忽略了ProxyHandler,仍然不能想办法。


我明白了,检查 stackoverflow 中的线程: urllib2 doesn't use proxy (Fiddler2), set using ProxyHandler

在 Fiddler2 中,转到页面Tools->Fiddler Options ...->Connections,从“IE should bypass Fiddler for ...”字段中的值中删除尾随分号并重新启动 Fiddler2。

这个解决方案解决了我的问题,希望可以帮助你解决这个问题。

【讨论】:

  • 我正在使用 python 2.7 和 urllib2,试图迁移到 Python 3 和 Requests,但 Fiddler 没有显示 POST,这非常令人沮丧。恐怕您的解决方案对我不起作用。
  • 我必须将我的(本地主机定义的)目标主机 blah.com 的 session.proxies 显式设置为 { 'blah.com': '127.0.0.1:8888'} - 然后 Fiddler with Requests 开始向我展示POST,虽然它从来没有问题显示我 GET
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-16
相关资源
最近更新 更多