使用Wget从需要设置cookie的站点下载PDF文件

时间:2011-08-15 11:01:28

标签: pdf wget

我想访问一个报纸网站,然后下载他们的电子版副本(PDF格式)。该网站要求我使用我的电子邮件地址和密码登录,然后它允许我访问这些PDF URL。

我在wget中设置'会话'时遇到了麻烦。当我从浏览器登录该站点时,它会设置两个cookie值:

UserID=abc@gmail.com
Password=12345

我试过了:

wget --post-data "UserID=abc@gmail.com&Password=12345" http://epaper.abc.com/login.aspx

但是,刚刚下载了登录页面并将其保存在本地

登录页面上的FORM有两个字段:

txtUserID
txtPassword

和radiobuttons这样:

<input id="rbtnManchester" type="radio" checked="checked" name="txtpub" value="44">

另一个按钮:

<input id="rbtnLondon" type="radio" name="txtpub" value="64">

如果我将此帖子发布到login.aspx页面,我会得到相同的输出

wget --post-data "txtUserID=abc@gmail.com&txtPassword=12345&txtpub=44" http://epaper.abc.com/login.aspx

如果我这样做:

- save-cookies abc_cookies.txt

它似乎没有默认内容以外的任何内容。

对于最后一次,如果我这样做 - 还要说:“

...
Set-Cookie: ASP.NET_SessionId=05kphcn4hjmblq45qgnjoe41; path=/; HttpOnly
...
Stored cookie epaper.abc.com -1 (ANY) / <session> <insecure> [expiry none] ASP.NET_SessionId 05kphcn4hjmblq45qgnjoe41
Length: 107253 (105K) [text/html]
Saving to: `login.aspx'
...
Saving cookies to abc_cookies.txt.

但是,abc_cookies.txt仅显示以下内容:

# HTTP cookie file.
# Generated by Wget on 2011-08-16 08:03:05.
# Edit at your own risk.

1 个答案:

答案 0 :(得分:0)

只是一个建议,您是否尝试使用查询字符串变量(显然不太安全)?

wget "http://epaper.abc.com/login.aspx?UserID=abc@gmail.com&Password=12345"

您可能必须根据shell / OS转义特殊字符。