有人有吗?我试过 Comicdownloader 但这只能让我下载最新的漫画,而且我对 Python 的理解还不够好,无法弄清楚如何更改它以下载所有漫画
3 回答
好吧,它不是 python,而且该方法也不是很优雅,但它会起作用。
在对ctrl+alt+del 存档站点进行简要检查后,我发现所有漫画都以 jpg 文件的形式存储在 /comics/ 中。
有了这个假设,在 *nix 机器上的 shell 中运行以下命令将下载所有漫画。文件名显然是 YYYYMMDD 格式的日期。
$ for filename in $(seq 20020101 20090726); do wget http://www.ctrlaltdel-online.com/comics/"$filename".jpg; done
哦,这可能需要一段时间:)。
嗯,有几种方法。您可以查看漫画图像本身的 url,看看它们是否遵循模式,编写一个小脚本来生成与模式匹配的 url,然后简单地使用 wget 或类似的东西来下载它们。要学习必要的 python,我推荐python 教程。专门研究组合字符串、字符串格式、字符串操作的方法,以便您可以从组件字符串、数字等构建您的 URL。这类项目可能是学习 python 的一个很好的借口,它可能会在未来帮助你做其他事情。(而且很有趣!)
或者,我想人们之前已经这样做了——几乎可以肯定,那里有应用程序可以做你想做的事,给定图像的 url,或者只是 url 的模式。看看四周。
你可以写信给漫画的作者,询问他们是否可以以某种方式批量购买,可能是购买,也可能是一本书。我想 ctrl-alt-del 足够流行,可以简单地吸收您下载整个存档的额外负载,但较小的网站可能不会欣赏它 - 尽管我认为它们不会真正阻止您或任何事情。
至于你的问题,这个网站应该帮助你解决你的编程问题,帮助你解决你遇到的问题,一路轻推你——但如果你要求他们只是为你编写代码,大多数人不会欣赏它。学点python,自己试试,遇到问题再问。
我将 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'