momosys 发表于 2018-8-18 23:53

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

截图:


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

源码:
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/{1,}\.html',html.text)
            for page_url in page_list:
                key = re.findall('{1,}',page_url)
                if key != None:
                  key = key
                  if key not in self.start_url_list:
                        self.start_url_list=[]
                  if page_url not in self.start_url_list:
                        self.start_url_list.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/{4}/{2}/{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:
                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("下载完毕,按任意键退出")


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

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

怎么整!!
页: [1] 2
查看完整版本: 批量下载某恐怖漫画网站漫画(源码)