• Python下载漫画


    上午起来提不起劲,于是就用电脑看漫画,但是在线看漫画好烦,就想下下来看。一个一个点太麻烦,于是花了点时间用python写了个demo,把爱漫画的漫画下载下来,这样就可以随时随地看了。这也是我首次尝试用python写不是数据处理的东西,还是很开心的。
          做的具体思路就是利用python提供的urllib,urllib2的内容来做的,其中辅助了正则表达式模块re,用来进行匹配。因为自己水平不咋地,代码有点乱。。
    代码:

    #!/usr/bin/env python
    #-*- coding: utf-8 -*-

    import urllib as ub1
    import urllib2 as ub2
    import re

    def downloadCartoon(bookurl,localdir):
        req = ub2.Request(bookurl)
        f = ub2.urlopen(req)
        for eachline in f:
            line = eachline.strip()     
            if re.match('.*下载.*',line):
                wordList = line.split('"')
                downloadurl='http://www.bbhou.com/'+wordList[1]
                req1 = ub2.Request(downloadurl)#第2个是下载链接的页面URL地址,构造这个request,然后再次请求一个网页
                #跳转到下载的页面,再次请求并进行下载
                f1 = ub2.urlopen(req1)
                for item in f1:
                    item2 = item.strip()               
                    if re.match('.*zip',item2):
                        wl = item2.split('"')   
                        localname = localdir+wl[3]+'.zip'                           
                        ub1.urlretrieve(wl[1],localname.decode('utf-8'))#利用下载链接,下载到本地
                        print localname.decode('utf-8')+' downloaded.'               

    def GetCartoon(url):
        #这里是漫画所有的列表,区域,这里循环获得每一卷的地址,然后调用上一个函数去进行下载
        rooturl = 'http://www.bbhou.com/' #这是漫画地址的根目录,后面的连接需要根据这个进行跳转
        request = ub2.Request(url)
        response = ub2.urlopen(request)   
        lsturl = []
        for every in response:
            line = every.strip()
            if re.match('.*/manhua/.*html.*',line):
                piclist = line.split('"')
                for item in piclist:
                    if re.match('.*html.*',item):
                        cururl = rooturl+item
                        lsturl.append(cururl)
        for url in lsturl:
            try:           
                downloadCartoon(url,'E:\')
            except Exception,e:
                continue   
               
    GetCartoon('http://www.bbhou.com/manhua/jinjidejuren/')

  • 相关阅读:
    【转】大数据求职者说
    【转】大数据东西辣么多,我该如何给自己一个清晰的定位呢?
    【转】大数据工程师需要学习哪些?
    【English】 Re-pick up English for learning big data (not updated regularly)
    【spark】spark应用(分布式估算圆周率+基于Spark MLlib的贷款风险预测)
    【idea】scala&sbt+idea+spark使用过程中问题汇总(不定期更新)
    【idea】scala&sbt+idea安装配置与测试
    spring boot热部署
    网段判断
    【转】python测试框架--doctest
  • 原文地址:https://www.cnblogs.com/ahnucao/p/4938741.html
Copyright © 2020-2023  润新知