首页 编程教程正文

批量下载某恐怖漫画网站漫画(源码)

piaodoo 编程教程 2020-02-22 22:01:25 895 0 python教程

本文来源吾爱破解论坛

截图:

1.png (17.92 KB, 下载次数: 5)

下载附件  保存到相册

2018-8-18 23:50 上传

2.png (21.16 KB, 下载次数: 3)

下载附件  保存到相册

2018-8-18 23:50 上传

3.png (9.55 KB, 下载次数: 2)

下载附件  保存到相册

2018-8-18 23:50 上传

4.png (25.26 KB, 下载次数: 3)

下载附件  保存到相册

2018-8-18 23:50 上传


说明:
下载指定页数的漫画分别存放到对应文件夹~
因为卸载3.6导致3.7不能直接运行py文件,所以只能用IDE启动了...

源码:[Python] 纯文本查看 复制代码
import requests
import os
import re
import time
class tu_pian(object):
    def __init__(self,word,maxPage):#初始化
        if maxPage == '':
            self.maxPage=1
        else:
            self.maxPage = int(maxPage)
        self.word = word
        self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36'}#添反爬加请求头防止
        self.start_url = 'http://www.guibb.cn/kongbumanhua/muou/page/{}/'#网页初始页
        self.start_url_list = {}#创建一个网页的列表
        for i in range(self.maxPage):#循环遍历   
            url = self.start_url.format(i+1)#使上面的url进行字符串格式化
            html = requests.get(url,headers=self.headers)
            page_list = re.findall('http://www.guibb.cn/html/[0-9]{1,}\.html',html.text)
            for page_url in page_list:
                key = re.findall('[0-9]{1,}',page_url)
                if key != None:
                    key = key[0]
                    if key not in self.start_url_list:
                        self.start_url_list[key]=[]
                    if page_url not in self.start_url_list[key]:
                        self.start_url_list[key].append(page_url)
         
    def get_content(self,url):
        #print(url)
        html = requests.get(url,headers=self.headers)#进行网络请求
        #print(html.text)#打印网页源代码
        img_list = re.findall('http://www.guibb.cn/wp-content/uploads/[0-9]{4}/[0-9]{2}/[a-zA-z0-9_\.]{6,}.jpg',html.text)#使用正则匹配图片
        return img_list#返回图片列表
        
    def save(self,key,start_url_list):#保存函数
        for pic_url in start_url_list:#进行循环
            #print(pic_url)#打印循环后的结果
            end = re.search('(.jpg|.jpeg|.png)$',pic_url)#添加一个名为end的变量名,搜索picurl里的东西
            if end == None:#进行if判断,如果等于无
                pic_url = pic_url + '.jpg'#则添加后缀.jpg
            try:#进行错误测试
                path = './' + self.word +'/'+key
                if os.path.exists(path) == False:
                    os.mkdir(path)
                with open(path+ '/{}'.format(pic_url[-10:]), 'ab') as f:#使用with方法保存,+ 输入的文字 + 格式化picurl里面的图片名字防止重名
                    try:
                        pic = requests.get(pic_url,headers=self.headers,timeout=1)#进行网络请求,添加请求头,超过一秒则切换下一个
                        f.write(pic.content)#写入图片
                    except Exception:
                        pass
            except Exception as e:
                print(e)
                pass
    
    def run(self):
        for key in self.start_url_list:
            for url in self.start_url_list[key]:
                start_url_list = self.get_content(url)
                self.save(key,start_url_list)
 
if __name__ == '__main__':
    word = input('请输入保存图片的文件夹名称:')
    maxPage = input('请输入需要的页数:')
    if os.path.exists(word) == False:
        os.mkdir(word)
    tupian = tu_pian(word,maxPage)
    tupian.run()
    input("下载完毕,按任意键退出")


其他:
第一次发主题,硬是没找到帖子“预览”在哪里。。。嗨学网

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/7320.html

搜索