如何让过去与Wget的登录页面?(How to get past the login page wi

2019-06-18 20:44发布

我试图用Wget的下载页面,但我不能让过去的登录屏幕。

如何发送使用登录页上发布数据的用户名/密码,然后下载实际的页面作为身份验证的用户?

Answer 1:

根据手册页:

# Log in to the server.  This only needs to be done once.
wget --save-cookies cookies.txt \
     --keep-session-cookies \
     --post-data 'user=foo&password=bar' \
     --delete-after \
     http://server.com/auth.php

# Now grab the page or pages we care about.
wget --load-cookies cookies.txt \
     http://server.com/interesting/article.php

确保--post-data参数是正确的百分比编码 (尤其是&符号!),或者请求可能会失败。 另外,还要确保userpassword是正确的键; 你可以找出由侦探登录页面的HTML正确的键(看看你的浏览器中的“检查元素”的功能,并找到name上的用户名和密码字段属性)。



Answer 2:

我直接给一个现有的连接用--no-Cookie和Cookie的HTTP请求报头与wget的饼干。 就我而言,这是一个大学的Moodle哪里登录登录看起来更加复杂(使用登录票证多个请求)。 我加--post数据,因为它是一个POST请求。 例如,让所有的M​​oodle用户列表:

wget --no-cookies --header "Cookie: <name>=<value>" --post-data 'tab=search&name=+&personsubmit=Rechercher&keywords=&keywordsoption=allmine' https://moodle.unistra.fr/message/index.php



Answer 3:

如果你需要它一次性使用,您可以通过浏览器登录,之后复制所需的标题:

使用“复制为卷曲”的开发者工具的网络选项卡(重装开业后的页面)和替换卷曲的头标志-H--data用的wget的--header--post-data



Answer 4:

我有同样的问题。 我的解决办法是通过做Chrome浏览器中登录和数据保存的cookies来一个文本文件。 :这是很容易与此Chrome extention完成铬cookie.txt出口延伸 。

当你的饼干的数据,还有关于如何将其与wget的用一个例子。 一个简单的复制粘贴命令行提供给您。



Answer 5:

你不需要卷曲办提交的表单数据。 --post-data 'key1=value1&key2=value2'的作品就好了。 注意:您也可以通过文件名与文件中的POST数据与wget。



Answer 6:

I wanted a one-liner that didn't download any files; here is an example of piping the cookie output into the next request. I only tested the following on Gentoo, but it should work in most *nix environments:

wget -q -O /dev/null --save-cookies /dev/stdout --post-data 'u=user&p=pass' 'http://example.com/login' | wget -q -O - --load-cookies /dev/stdin 'http://example.com/private/page' (this is one line, though it likely wraps on your browser)

If you want the output saved to a file, change -O - to -O /some/file/name



Answer 7:

如果他们使用基本身份验证:

wget http://username:password@www.domain.com/page.html

如果他们使用提交的表单数据,你需要使用像卷曲代替。



Answer 8:

其使用山猫和wget溶液。

注: 山猫也已经被编译与--enable-持久的cookie标记这个工作

当你想使用wget从中需要登录的网站上下载一些文件,你只需要一个cookie文件。 为了生成cookie文件,我选择了山猫。 猞猁是一个文本网页浏览器。 首先你需要一个配置文件猞猁保存的Cookie。 创建一个文件lynx.cfg。 写这些配置到文件中。

SET_COOKIES:TRUE
ACCEPT_ALL_COOKIES:TRUE
PERSISTENT_COOKIES:TRUE
COOKIE_FILE:cookie.file

然后,使用此命令启动山猫:

lynx -cfg=lynx.cfg http://the.site.com/login

你输入用户名和密码,并选择后“保存我的这台电脑”或类似的东西。 如果成功登录,您会看到该网站的一个美丽的文字网页。 你注销。 在当前目录,你会发现命名为cookie.file一个cookie文件。 这是我们需要wget的。

然后wget的可以用这个命令站点下载文件。

wget --load-cookies ./cookie.file http://the.site.com/download/we-can-make-this-world-better.tar.gz


Answer 9:

例如与wget的下载服务器上,可以在浏览器中获得大的文件链接。

在例如使用谷歌浏览器。

登录你需要,按下载。 去下载并复制你的链接。

然后,一个页面,你在哪里登陆,进入控制台 ,让你的饼干,通过进入开放DevTools document.cookie

现在,到服务器并下载你的文件: wget --header "Cookie: <YOUR_COOKIE_OUTPUT_FROM_CONSOLE>" <YOUR_DOWNLOAD_LINK>



文章来源: How to get past the login page with Wget?
标签: wget