用于下载所有Ctrl + Alt + Del webcomics的python脚本?

时间:2009-07-25 21:27:12

标签: python download web-scraping

有人有吗?我曾尝试过Comicdownloader,但这只能让我下载最新的漫画,而且我不太了解Python,以便弄清楚如何更改它以下载所有漫画

3 个答案:

答案 0 :(得分:4)

嗯,这不是python,方法也不是很优雅,但它会起作用。

在对ctrl+alt+del archive site进行简要检查后,我发现所有漫画都存储在/ comics /中作为jpg文件。

根据这个假设,在* nix机器上的shell中运行以下命令将下载所有漫画。文件名显然是YYYYMMDD格式的日期。

$ for filename in $(seq 20020101 20090726); do wget http://www.ctrlaltdel-online.com/comics/"$filename".jpg; done

哦,可能需要一段时间:)。

答案 1 :(得分:2)

嗯,有几种方法。您可以查看漫画图像本身的网址,看看它们是否遵循模式,编写一个小脚本来生成与模式匹配的网址,并简单地使用wget或类似的东西来下载它们。要学习必要的python,我推荐python tutorial。具体了解组合字符串,字符串格式,字符串操作的方法,以便您可以从组件字符串,数字等构建URL。这类项目可能是学习python的一个很好的借口,这可能会帮助你将来做其他事情。 (并且很有趣!)

另外,我想人们之前已经这样做了 - 几乎可以肯定的是那里的应用程序可以做你想要的,给定图像的网址,或者只是网址的模式。四处看看。

你可以写信给漫画作者,并询问他们是否可以批量购买,可能是购买,也可能是书。我想ctrl-alt-del很受欢迎,只是为了吸收下载整个档案的额外负担,但较小的网站可能不会欣赏它 - 虽然我认为它们不能真正阻止你或任何东西。

关于你的问题,这个网站应该帮助你解决你的编程问题,帮助你解决你遇到的问题,并一路推动你 - 但是如果你让他们只是编写代码,大多数人都不会欣赏它为了你。学习一些python,自己尝试一下,如果遇到任何问题,请问。

答案 2 :(得分: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'