下载所有Ctrl+Alt+Del网络漫画的Python脚本?
有人有这个工具吗?我试过Comicdownloader,但它只能让我下载最新的漫画,而且我对Python不太懂,没办法弄明白怎么改成可以下载所有漫画。
3 个回答
我使用了urllib这个库,并且修改了用户代理(因为Timmy把原来的给封了),还用到了BeautifulSoup。总之,这里是我的日期生成器:
t1 = datetime.date(2002, 10, 22)
t2 = datetime.date.today()
while t2 > t1:
t1 = t1 + datetime.date.resolution
toon = t1.strftime("%Y%m%d")
url1 = str(toon)
main(url1)
我的主函数(main())是这样的(把“检查文件是否存在”的部分去掉了)
def main(url):
con = httplib.HTTPConnection("www.cad-comic.com")
con.request("GET", "/cad/" + url)
r1 = con.getresponse()
soup = BeautifulSoup(r1)
img = soup.findAll("img")[1]
nImg = str(img)
imgSplit = re.split('"', nImg)
imgUrl = imgSplit[1]
if imgUrl.startswith('http://www.cad-comic.com/comics/'):
MeOpans().retrieve(imgUrl, url + ".jpg")
print "Downloaded " + url
“MeOpans()”是这样的:
class MeOpans(urllib.URLopener):
version = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11'
其实,有几种方法可以解决这个问题。你可以先看看那些漫画图片的链接,看看它们是否有规律可循。然后写个小程序来生成符合这个规律的链接,接着用wget或者类似的工具来下载它们。如果你想学Python,推荐你去看看这个Python教程。特别要关注如何组合字符串、格式化字符串和字符串操作,这样你就能用一些基本的字符串和数字来构建你的链接了。做这个项目可能是个不错的机会来学习Python,未来也会对你其他的事情有帮助哦。(而且还挺有趣的!)
另外,我想之前肯定有人做过类似的事情——市面上几乎肯定有一些应用可以满足你的需求,只要给出图片的链接或者链接的规律。你可以多找找看。
你也可以联系一下漫画的作者,问问他们是否有批量提供的方式,可能是出售的形式,或者是以书的形式。我觉得《ctrl-alt-del》这部作品应该够受欢迎,能承受你下载整个档案的负担,但一些小网站可能就不太喜欢了——不过我觉得他们也没办法真的阻止你。
至于你的问题,这个网站应该能帮助你解决编程上的疑问,帮你解决遇到的问题,给你一些提示——但大多数人不太喜欢你直接让他们为你写代码。学点Python,自己试试,如果遇到问题再问。
嗯,这个方法不是用Python写的,而且也不是特别优雅,但它能用。
我简单查看了一下ctrl+alt+del的存档网站,发现所有的漫画都存放在/comics/文件夹里,格式是jpg。
基于这个假设,在一个*nix系统的命令行中运行下面的命令,就可以下载所有的漫画。文件名显然是以YYYYMMDD的格式表示日期。
$ for filename in $(seq 20020101 20090726); do wget http://www.ctrlaltdel-online.com/comics/"$filename".jpg; done
哦,对了,这个过程可能会花一些时间 : )。