Command line WGET、Cookies和302重定向
我想使用WGET从某个站点的成员区下载一些图片。此站点受密码保护。我已成功登录并保存cookies。然而,由于302重定向,我仍然无法下载图片。谁能帮我看看这个吗?非常感谢Command line WGET、Cookies和302重定向,command-line,cookies,centos,wget,Command Line,Cookies,Centos,Wget,我想使用WGET从某个站点的成员区下载一些图片。此站点受密码保护。我已成功登录并保存cookies。然而,由于302重定向,我仍然无法下载图片。谁能帮我看看这个吗?非常感谢 wget --load-cookies=examplecookies http://members.example.com/membersarea/0004.jpg --2010-12-18 18:58:50-- http://members.example.com/membersarea/0004.jpg Resolv
wget --load-cookies=examplecookies http://members.example.com/membersarea/0004.jpg
--2010-12-18 18:58:50-- http://members.example.com/membersarea/0004.jpg
Resolving members.example.com... 12.34.56.78
Connecting to members.example.com|12.34.56.78|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: /login.aspx?ReturnUrl=%2fmembersarea%2f0004.jpg [following]
--2010-12-18 18:58:50-- http://members.example.com/login.aspx?ReturnUrl=%2fmembersarea%2f0004.jpg
Reusing existing connection to members.example.com:80.
HTTP request sent, awaiting response... 302 Found
Location: /membersarea/default.aspx [following]
--2010-12-18 18:58:50-- http://members.example.com/membersarea/default.aspx
Reusing existing connection to members.example.com:80.
HTTP request sent, awaiting response... 200 OK
Length: 61898 (60K) [text/html]
Saving to: `default.aspx'
100%[===================================================================================>] 61,898 --.-K/s in 0.1s
2010-12-18 18:58:51 (572 KB/s) - `default.aspx' saved [61898/61898]
default.aspx
是membersarea的首页,这意味着我已成功登录
我做了一些谷歌搜索,并添加了--user agent=“Mozilla/4.0”
,但仍然不起作用:
wget --user-agent="Mozilla/4.0" --load-cookies=examplecookies http://members.example.com/membersarea/0004.jpg
结果是一样的
非常感谢 我以前在wget和cookies方面总是遇到麻烦(试图让wget使用我的Mozilla cookies等等),所以我改用Perl库。它可以为您处理cookies,以及您希望从浏览器中获得的所有常规功能,如302处理和历史记录 一个简单的示例是登录到站点,获取所有JPG并单击“下一步”链接进行分页:
use warnings;
use strict;
use WWW::Mechanize;
use File::Slurp;
my $mech = WWW::Mechanize->new;
$mech->get('http://example.com/login') || die;
$mech->submit_form( form_name => 'login_form',
fields => { username => 'me',
password => 'secret' } ) || die;
while (1) {
for my $link ($mech->links) {
my $url = $link->url;
if ($url =~ /(image_\d+\.jpg)\z/) {
my $file = $1;
$mech->get($url);
File::Slurp::write_file($file, $mech->content);
$mech->back; # like the browser back button
}
}
# look at next page, if any
my $result = $mech->follow_link(text_regex => qr/Next/);
if (!$result) {
last;
}
}
大家好,我已经在FlashGet(一个firefox插件)的帮助下解决了我的问题。下面是方法:右键单击图片的url并选择“FlashGetthelink”,然后您可以成功下载图片。然后查看FlashGet的日志,并将cookies信息复制到txt文件中。这就是wget需要的饼干。然后将wget与cookies一起使用,我就成功地下载了这些文件。非常感谢你的帮助。我以后可能会使用Perl