Python 如何在一个登录页面后面自动下载一个被javascript弄得千疮百孔的文件?

Python 如何在一个登录页面后面自动下载一个被javascript弄得千疮百孔的文件?,python,html,curl,Python,Html,Curl,我想定期从设备下载日志文件。手动下载文件时,通过检查chrome->inspect element->network找到curl命令来执行此操作后,我找到了以下curl type命令来显示日志文件: curl 'http://10.0.0.1:1333/cgi/WebCGI?7043' -H 'Cookie: loginname=admin; password=e5T%7B%5CYnlcIX%7B; OsVer=2.17.0.32' -H 'Connection: keep-alive' --d

我想定期从设备下载日志文件。手动下载文件时,通过检查
chrome->inspect element->network
找到curl命令来执行此操作后,我找到了以下curl type命令来显示日志文件:

curl 'http://10.0.0.1:1333/cgi/WebCGI?7043' -H 'Cookie: loginname=admin; password=e5T%7B%5CYnlcIX%7B; OsVer=2.17.0.32' -H 'Connection: keep-alive' --data '' --compressed
这个命令可靠吗?“Cookie:”中的用户名与登录用户名相同,但密码不同(假设真实密码为
p@$$w0rd
)。我猜
e5T%7B%5CYnlcIX%7B
只是一个cookie会话密码,将在某个阶段过期。我说得对吗

问题1

使用命令行程序或Python库,用户名为admin,密码为p@$$w0rd,如何可靠地实现这一点。这将在服务器上运行,我不希望它定期中断

问题2


实现“我想编写一个文件下载脚本,它是通过登录页面后面的JavaScript按钮启动的。”

当您实际单击“登录”按钮时,也要检查浏览器发送的请求。最有可能发生的情况是:浏览器发送一个带有纯文本用户名和密码的POST请求,并返回一个包含会话/登录cookie的响应(注意
Set cookie
response头)。在后续请求中,浏览器将发送回cookie并进行身份验证。使用Python模块,您可以简单地模拟此行为:使用创建会话,并执行登录请求(使用纯文本凭据)和从该会话获取日志文件的请求。
请求
库将在第一个登录请求返回时存储cookie,并与第二个请求一起发送,就像浏览器一样。@Lukas\u Graf好的,谢谢,我会尝试的。既然你看起来很有知识,你能逐行阅读日志文件吗?直到你“赶上”以前阅读的<代码>请求?嗯,我在登录时在帖子中看到了相同的密码。这是否意味着我的密码与
e5T%7B%5CYnlcIX%7B
之间存在某种映射?顺便说一下,真正的密码是
streicher
。我希望这个消息不会造成伤害,这个设备在防火墙后面,密码显然是“admin:admin”的等价物……至于你的第一个问题,这实际上与
请求
模块或HTTP没有任何关系。您需要跟踪上次读取的行数,然后每次再次获取完整文件,并跳过正确的行数。如果您的设备的HTTP服务器支持,那么您只能获取所需的部分—但这更像是一种性能优化,它会使所需的逻辑更加复杂。