环境变量
我在使用 mechanize
模块登录一个网站。当我 import twill.commands
时,虽然没有其他明显的用途,但会出现一些调试信息 [0]。如果我把它删掉,这些信息就消失了。
我想知道环境中发生了什么变化,以便模仿这个过程,去掉这个依赖。
[0] 使用的是 logging 模块。
[1] 更具体来说,我对 Following HTTP-EQUIV=REFRESH
这个信息感兴趣。
更新:结果发现 twill.commands
中有个 bug,导致在尝试跟随 HTTP-EQUIV=REFRESH
头时出错。删除了 import twill.commands
以及那个麻烦的解决方法后,一切都顺利了。
2 个回答
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' 表示开启。
我的猜测是——在没有深入研究这些库的情况下——twill正在创建一个日志记录器,而mechanize则在做一个库应该做的事情,也就是在开启日志记录的情况下进行记录,如果没有开启就不记录。
要启用mechanize
的日志记录,你需要在你的应用代码中配置一个logging.basicConfig的根设置。