我已经看到了一些帮助我在这方面取得进展的点点滴滴,但我正试图将它们联系在一起,但我还没有做到这一点。
简而言之,我正在尝试通过登录连接到 TiVo,这样我就可以获得设备上录音的 xml 文件。我已经尝试寻找在 URL 中包含用户和密码的方法,但这似乎不起作用。当我在 Chrome 中输入 URL 时,我会收到一个用户名和密码的请求者:
我在登录 ISP 的路由器或防火墙时经常看到这种情况。我确信这是一件司空见惯的事情,但我对 HTTP 请求的了解还不够,无法知道如何处理它。我也知道这是个问题,因为这个页面要我登录,但 SSL 证书是自签名的。
一旦我通过了身份验证请求,我就会得到我需要的数据。我看到这个关于忽略证书问题的问题,它谈到了在使用 urllib2 时处理认证检查。第一个和选定的答案对我没有帮助,因为它说 urllib2 不检查认证真实性。超过 120 次投票的答案更能解决对证书的担忧。
我也看到了这个关于 logins的问题,它也解决了我的部分问题。我不明白这个答案是否在谈论使用我需要帮助的同一种登录方式。我也看不到如何组合这两个问题的答案,因为它们使用两种不同的方式从 URL 中检索数据。
我还找到了使用 wget 的解决方案:
wget --no-check-certificate --http-user=tivo --http-password=your-MAK-here
-O nowplaying.xml "https://192.168.2.103/TiVoConnect?
Command=QueryContainer&Container=%2FNowPlaying&Recurse=Yes"
我在调试模式下尝试了 wget 看看它做了什么。我希望,不知何故,用户名和密码只是嵌入在 URL 中,但现在我看到它们没有并且仍然在初次联系后传递,以响应来自目标系统的验证请求。
我需要能够在 Python 中使用一些东西来处理我所描述的登录类型。但我也需要同样的方法来忽略证书是自签名的事实。我看到了每个问题的解决方案,但没有同时处理这两个问题。
那么我该如何处理这种类型的登录呢?(与第二个问题的登录问题相同)我如何同时忽略证书问题?