下载所有Ctrl+Alt+Del网络漫画的Python脚本?

-3 投票
3 回答
1514 浏览
提问于 2025-04-15 13:09

有人有这个工具吗?我试过Comicdownloader,但它只能让我下载最新的漫画,而且我对Python不太懂,没办法弄明白怎么改成可以下载所有漫画。

3 个回答

0

我使用了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'
2

其实,有几种方法可以解决这个问题。你可以先看看那些漫画图片的链接,看看它们是否有规律可循。然后写个小程序来生成符合这个规律的链接,接着用wget或者类似的工具来下载它们。如果你想学Python,推荐你去看看这个Python教程。特别要关注如何组合字符串、格式化字符串和字符串操作,这样你就能用一些基本的字符串和数字来构建你的链接了。做这个项目可能是个不错的机会来学习Python,未来也会对你其他的事情有帮助哦。(而且还挺有趣的!)

另外,我想之前肯定有人做过类似的事情——市面上几乎肯定有一些应用可以满足你的需求,只要给出图片的链接或者链接的规律。你可以多找找看。

你也可以联系一下漫画的作者,问问他们是否有批量提供的方式,可能是出售的形式,或者是以书的形式。我觉得《ctrl-alt-del》这部作品应该够受欢迎,能承受你下载整个档案的负担,但一些小网站可能就不太喜欢了——不过我觉得他们也没办法真的阻止你。

至于你的问题,这个网站应该能帮助你解决编程上的疑问,帮你解决遇到的问题,给你一些提示——但大多数人不太喜欢你直接让他们为你写代码。学点Python,自己试试,如果遇到问题再问。

4

嗯,这个方法不是用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

哦,对了,这个过程可能会花一些时间 : )。

撰写回答