吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7651|回复: 10
收起左侧

[Python 转载] 批量下载某恐怖漫画网站漫画(源码)

[复制链接]
momosys 发表于 2018-8-18 23:53
截图:

1.png 2.png 3.png 4.png
说明:
下载指定页数的漫画分别存放到对应文件夹~
因为卸载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("下载完毕,按任意键退出")


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

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

19930111 发表于 2018-8-19 00:02
看看   不错  
sorryworld 发表于 2018-8-19 00:25
sorryworld 发表于 2018-8-19 00:26
z357369 发表于 2018-8-19 09:00
这个怎么用啊???、
 楼主| momosys 发表于 2018-8-19 13:52
sorryworld 发表于 2018-8-19 00:26
所以到底是哪个恐怖漫画网站?

额。。。我貌似给的是源码。。。
 楼主| momosys 发表于 2018-8-19 13:53
z357369 发表于 2018-8-19 09:00
这个怎么用啊???、

安装Python(我用的是3.7开发的 所以建议安装3.7) 然后安装requests模块 最后双击运行就可以了
z357369 发表于 2018-8-19 14:04
momosys 发表于 2018-8-19 13:53
安装Python(我用的是3.7开发的 所以建议安装3.7) 然后安装requests模块 最后双击运行就可以了

好的  我试试
taik 发表于 2018-8-19 21:59
看着好像不错!
lwgxbs 发表于 2018-12-13 23:20 来自手机
怎么整!!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 04:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表