环境变量

1 投票
2 回答
1099 浏览
提问于 2025-04-15 23:57

我在使用 mechanize 模块登录一个网站。当我 import twill.commands 时,虽然没有其他明显的用途,但会出现一些调试信息 [0]。如果我把它删掉,这些信息就消失了。

我想知道环境中发生了什么变化,以便模仿这个过程,去掉这个依赖。

[0] 使用的是 logging 模块。

[1] 更具体来说,我对 Following HTTP-EQUIV=REFRESH 这个信息感兴趣。

更新:结果发现 twill.commands 中有个 bug,导致在尝试跟随 HTTP-EQUIV=REFRESH 头时出错。删除了 import twill.commands 以及那个麻烦的解决方法后,一切都顺利了。

2 个回答

1

twill 这个工具内部使用了 mechanize,你可以直接用 twill 登录网站。

如果想要跟踪 http-equiv 的重定向,只需使用 go 命令

go <url> -- 访问指定的 URL。这个 Python 函数会返回最终访问的 URL,在所有重定向之后

如果想要调试 http-equiv 的重定向,可以开启相关的调试级别。

debug <what> <level> -- 开启或关闭不同功能的调试/追踪。第一个参数可以是 'http',用来显示 HTTP 头信息;'equiv-refresh' 用来测试 HTTP EQUIV-REFRESH 头;或者 'commands' 来显示 twill 的命令。第二个参数是 '0' 表示关闭,'1' 表示开启。

1

我的猜测是——在没有深入研究这些库的情况下——twill正在创建一个日志记录器,而mechanize则在做一个库应该做的事情,也就是在开启日志记录的情况下进行记录,如果没有开启就不记录。

要启用mechanize的日志记录,你需要在你的应用代码中配置一个logging.basicConfig的根设置。

撰写回答