杂志

在书店免费阅读了若干年之后,今年我光荣地成为了一名Linux Format杂志的订阅者。这一年百余元的订阅费,带给我的是每月一期的邮递纸质杂志,以及可以下载此杂志所有电子版的权利。Linux Format杂志的网站,使用的是未经保护的纯http协议连接;而订阅者的登录验证,也只需要提供一个(位数不长的)订阅号以及订阅者的姓氏。从这个角度上说,它的网站的安全性实在是不能算高,但正如杂志的编辑们暗示的,如此设计,是基于(泄露订阅者的验证信息对订阅者本身以及杂志网站所带来的)安全风险不高和节省成本的考虑。作为一名杂志的订阅者,我无法掩饰我的些许担心;但站在一个信息安全工作者的角度和杂志的立场上,我也不得不认为编辑们的看法是合理的。

言归正传,这次我们要说的是,作为一名订阅者,如何批量下载所有杂志的电子版。由于杂志的网站设计的宗旨是倾向简单性忽略安全性,将LXF66到LXF133所有zip格式的电子版杂志下载,只需要借助wget和短短几行bash脚本命令。


for i in {66..133};
do
echo $i;
wget --referer=http://www.linuxformat.com/archives?issue=$i --cookie=on --load-cookies=cookies.txt --keep-session-cookies --save-cookies=cookies.txt http://www.linuxformat.com/includes/downloads.php?PDF=$i-full.zip" -O LXF$i-full.zip;
done

这里,cookies.txt是一个包含了订阅者登录后Linux Format杂志网站发送的cookie内容的文本文件。利用Wireshark(可以用’http.request.full_uri contains linuxformat.com’ filter )我们可以容易地在http包的header里找到cookie的信息。一个更简单的得到wget可以识别的cookie文本文件的方法,是使用火狐浏览器的Export Cookies插件。使用此插件,浏览器保存的所有cookies都可以被输出到一个文本文件里去,这其中也包括了来自linuxformat.com的cookie。由于这个网站设计的简单性,它发送的cookie一旦设定,在相当长的时间内都不会变化。所以以上命令中的--keep-session-cookies --save-cookies=cookies.txt部分在这个情况下并不必要,因为我们不需要随时更新新的cookie信息。

LXF134之后的电子版杂志,都是一个个单独的pdf文件。对如上脚本略加改动,我们仍可比葫芦画瓢般将它们全部自动化下载。

现在留给我的唯一难题,大概就是如何找到时间来阅读这些如同汗牛充栋般的杂志了吧。

Advertisements


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s