使用python下载网站漫画

最近想回顾一下七龙珠,结果发现腾讯已经收费,而且是按节收费,无奈看看其他网站,找到了一个网站,可以在线看,但是无法下载,最后决定使用python下载下来

首先要分析网站源码,查看源代码

       1~42部的URL是从

http://comic.kukudm.com/comiclist/141/1343/

http://comic.kukudm.com/comiclist/141/1384/

       而每一页的URL是从1.htm到xx.htm

       得到每部的网址后,下一步就是看图片的URL

rsp = req.get(url, timeout = 2)   

rsp.encoding = 'utf-8'

print rsp.text

打印出来的漫画图片源码如下:

       document.write("<img id=comicpic name=comicpic src='"+server+"kuku3comic3/qlz/vol01/001DM01W3.jpg'>");

可以看出网站源码并不直接图片的源地址,而是需要通过浏览器编译运行才能图片的真实地址,通过F12调试浏览器,得出源地址如下:

多找几个,可以得出漫画的真实网址是http://n5.1whour.com/加对应网页源码的后缀拼接出来的,代码可以这么写

image_pre_url = "http://n5.1whour.com/"



# url http://comic2.kukudm.com/comiclist/141/1343/1.htm

# filename 001.jpg

@retry(stop_max_attempt_number=3, stop_max_delay=10000)

def downloadImg(url, filename):

    print url

    rsp = req.get(url, timeout = 2)   

    rsp.encoding = 'utf-8'

    image_posturl = re.findall("kuku3comic3.*.jpg", rsp.text)

    image_url = image_pre_url + str(image_posturl[0])

这里面的retry是引用了python的retrying模块,可以通过注释的模式设置函数内部重试,还可以设置最大时长

找到了章节网址和每个图片的网址,剩下就是下载了,代码如下

    r = req.get(image_url, stream=True, timeout = 2)

    with open(filename, 'wb') as f:

        for chunk in r.iter_content(chunk_size=1024):

            if chunk:

                f.write(chunk)

                f.flush()

        f.close()

        print 'download finished',image_url

至此,就可以完成漫画下载

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值