【发布时间】:2011-08-15 11:01:27
【问题描述】:
我想访问一家报纸网站,然后下载他们的电子纸副本(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
还有像这样的单选按钮:
<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
它似乎除了默认内容之外没有任何其他内容。
最后,如果我也这样做 --debug ,它会说:
...
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.
【问题讨论】:
-
嗯,我在superuser.com/questions/323971/…回复了你的交叉邮件