我试图用Wget的下载页面,但我不能让过去的登录屏幕。
如何发送使用登录页上发布数据的用户名/密码,然后下载实际的页面作为身份验证的用户?
我试图用Wget的下载页面,但我不能让过去的登录屏幕。
如何发送使用登录页上发布数据的用户名/密码,然后下载实际的页面作为身份验证的用户?
根据手册页:
# 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
参数是正确的百分比编码 (尤其是&符号!),或者请求可能会失败。 另外,还要确保user
和password
是正确的键; 你可以找出由侦探登录页面的HTML正确的键(看看你的浏览器中的“检查元素”的功能,并找到name
上的用户名和密码字段属性)。
我直接给一个现有的连接用--no-Cookie和Cookie的HTTP请求报头与wget的饼干。 就我而言,这是一个大学的Moodle哪里登录登录看起来更加复杂(使用登录票证多个请求)。 我加--post数据,因为它是一个POST请求。 例如,让所有的Moodle用户列表:
wget --no-cookies --header "Cookie: <name>=<value>" --post-data 'tab=search&name=+&personsubmit=Rechercher&keywords=&keywordsoption=allmine' https://moodle.unistra.fr/message/index.php
如果你需要它一次性使用,您可以通过浏览器登录,之后复制所需的标题:
使用“复制为卷曲”的开发者工具的网络选项卡(重装开业后的页面)和替换卷曲的头标志-H
和--data
用的wget的--header
和--post-data
。
我有同样的问题。 我的解决办法是通过做Chrome浏览器中登录和数据保存的cookies来一个文本文件。 :这是很容易与此Chrome extention完成铬cookie.txt出口延伸 。
当你的饼干的数据,还有关于如何将其与wget的用一个例子。 一个简单的复制粘贴命令行提供给您。
你不需要卷曲办提交的表单数据。 --post-data 'key1=value1&key2=value2'
的作品就好了。 注意:您也可以通过文件名与文件中的POST数据与wget。
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
如果他们使用基本身份验证:
wget http://username:password@www.domain.com/page.html
如果他们使用提交的表单数据,你需要使用像卷曲代替。
注: 山猫也已经被编译与--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
例如与wget的下载服务器上,可以在浏览器中获得大的文件链接。
在例如使用谷歌浏览器。
登录你需要,按下载。 去下载并复制你的链接。
然后,一个页面,你在哪里登陆,进入控制台 ,让你的饼干,通过进入开放DevTools document.cookie
现在,到服务器并下载你的文件: wget --header "Cookie: <YOUR_COOKIE_OUTPUT_FROM_CONSOLE>" <YOUR_DOWNLOAD_LINK>