o******1 发帖数: 1046 | 1 【 以下文字转载自 Programming 讨论区 】
发信人: outlook1 (outlook1), 信区: Programming
标 题: 请教个wget获取要密码登录的http页面的问题
发信站: BBS 未名空间站 (Thu Oct 8 19:20:51 2015, 美东)
目的是想获取router的一些即时的信息,但是这个router不支持snmp,现在想到的只有
从http页面用wget(或者curl)搞。当然是有大量的相似的router,所以必须自动化。
但是搞不定这种登录的情形。比如登录页面是http://172.16.0.1/login/,需要获取数据的页面是http://172.16.0.1/diagnostics/。我先用wget从http://172.16.0.1/login/保存一个cookies.txt,同时加了--keep-session-cookies选项。对比了直接从浏览器的cookie,这个获取的cookies.txt内容一模一样。
但是下一步就不行了。我用了--load-cookies,然后再用--post-data把http://172.16.0.1/diagnostics/页面form中input的参数pass过去,仔细检查过,没有typo。但是就是获取不到登录后的信息,wget返回的还是未登录前的http文件。
看了一下这个页面的source,好像有一些javascript函数,还有把密码和一段string一
起sha256加密,还有form的action函数是未知的。
请教俩问题:
1. 原则上,只要所有信息输入正确,命令行输入正确,所有需要authentication的页
面都能用wget(或者curl)返回吗?
2. 具体我这个case,有没有什么建议呢?
谢谢! |
c**t 发帖数: 2744 | 2 用fiddler对比一下吧,可能是缺其他的header |
n**********l 发帖数: 271 | 3 Plenty of sites, especially CDNs have checks (usually JavaScript) to prevent
batch operations with wget/curl.
exmaples
bgp.he.net |
n**********l 发帖数: 271 | 4
Is there a linux alternative for fiddler?
【在 c**t 的大作中提到】 : 用fiddler对比一下吧,可能是缺其他的header
|
g*****1 发帖数: 93 | 5 用chrome的开发者工具也可以的,对比下post的完整请求文本
【在 n**********l 的大作中提到】 : : Is there a linux alternative for fiddler?
|
r**********t 发帖数: 4 | 6 没有cli?如果有,那个比较方便
【在 o******1 的大作中提到】 : 【 以下文字转载自 Programming 讨论区 】 : 发信人: outlook1 (outlook1), 信区: Programming : 标 题: 请教个wget获取要密码登录的http页面的问题 : 发信站: BBS 未名空间站 (Thu Oct 8 19:20:51 2015, 美东) : 目的是想获取router的一些即时的信息,但是这个router不支持snmp,现在想到的只有 : 从http页面用wget(或者curl)搞。当然是有大量的相似的router,所以必须自动化。 : 但是搞不定这种登录的情形。比如登录页面是http://172.16.0.1/login/,需要获取数据的页面是http://172.16.0.1/diagnostics/。我先用wget从http://172.16.0.1/login/保存一个cookies.txt,同时加了--keep-session-cookies选项。对比了直接从浏览器的cookie,这个获取的cookies.txt内容一模一样。 : 但是下一步就不行了。我用了--load-cookies,然后再用--post-data把http://172.16.0.1/diagnostics/页面form中input的参数pass过去,仔细检查过,没有typo。但是就是获取不到登录后的信息,wget返回的还是未登录前的http文件。 : 看了一下这个页面的source,好像有一些javascript函数,还有把密码和一段string一 : 起sha256加密,还有form的action函数是未知的。
|
I********x 发帖数: 858 | 7 要是我就用python requests建一个session来处理。 curl太高层了估计有些默认的开
关不对头。
【在 o******1 的大作中提到】 : 【 以下文字转载自 Programming 讨论区 】 : 发信人: outlook1 (outlook1), 信区: Programming : 标 题: 请教个wget获取要密码登录的http页面的问题 : 发信站: BBS 未名空间站 (Thu Oct 8 19:20:51 2015, 美东) : 目的是想获取router的一些即时的信息,但是这个router不支持snmp,现在想到的只有 : 从http页面用wget(或者curl)搞。当然是有大量的相似的router,所以必须自动化。 : 但是搞不定这种登录的情形。比如登录页面是http://172.16.0.1/login/,需要获取数据的页面是http://172.16.0.1/diagnostics/。我先用wget从http://172.16.0.1/login/保存一个cookies.txt,同时加了--keep-session-cookies选项。对比了直接从浏览器的cookie,这个获取的cookies.txt内容一模一样。 : 但是下一步就不行了。我用了--load-cookies,然后再用--post-data把http://172.16.0.1/diagnostics/页面form中input的参数pass过去,仔细检查过,没有typo。但是就是获取不到登录后的信息,wget返回的还是未登录前的http文件。 : 看了一下这个页面的source,好像有一些javascript函数,还有把密码和一段string一 : 起sha256加密,还有form的action函数是未知的。
|