苍狼望月


axaxax


227933.jpg

SilverM

B374F  2021-01-30 14:01
(御姐控,熟女控,年上控,爱后宫也爱纯爱,爱人外也爱触手丸吞)
有意思,不知道有没有下青年漫和杂志的

none.gif

d5ec971d

   好贴

36751.png

なまえ知らず

引用
引用第215楼a99ff868于2021-01-24 12:09发表的  :
虽然我注册南+的时间比较晚,但还是得贡献一份绵薄之力的
首先是下载工具,本人百度网盘开的包月超会,磁链就用破解迅雷或者比特彗星下载,115买不起,害  迅雷链接在下方
链接:https://pan.baidu.com/s/1j-0RVbUcQUCuDPklGNCoZg
提取码:2133 解压码213331
至于网站我还是p站,xvideos,javbus,喵绅士用的较多一点,
.......

我买的3SP 但是扣了我1777 能否归还下
此帖售价 5 SP币,已有 1 人购买
若发现会员采用欺骗的方法获取财富,请立刻举报,我们会对会员处以2-N倍的罚金,严重者封掉ID!

无所畏惧


纯洁的lsp


726521.png

kujisanfun

B379F  2021-01-31 02:39
(cc)
更新一下吧,关于下载缺失的情况
特别注意,这不是对之前的爬虫的更新,而是另外一个全新的爬虫,请先使用第一个下载,再用这个补全



说明:
原楼层写太多了,新写一楼
想来想去还是补救一下,重新下载还是麻烦,况且每次下载完就要确认缺失情况,否则还得回头找链接,太麻烦
在漫画名后面添加id=和page=也是预留了补救措施



exe文件:
链接:https://pan.baidu.com/s/1YzrOuHzp582dEW2JSxdJcw 提取码:q994 复制这段内容后打开百度网盘手机App,操作更方便哦



先放代码
复制代码
  1. import os
  2. import shutil
  3. import requests
  4. import threading
  5. from faker import Faker
  6. faker = Faker(locale='zh_CN')
  7. glock = threading.Lock()    #加锁
  8. def save_img_noreferer(path,src):
  9.     headers = {
  10.         'User-Agent':faker.user_agent()
  11.         }
  12.     try:
  13.         response = requests.get(src,headers=headers)
  14.     except:
  15.         save_img_noreferer(path,src)
  16.     else:
  17.         if response.status_code == 200:    #状态码200,正常下载
  18.             with open(path,'wb') as f:
  19.                 f.write(response.content)
  20.                 print(path+'下载完成')
  21.         elif response.status_code == 522:    #状态码522,超时重新下载,直至200下载成功
  22.             save_img_noreferer(path,src)
  23.         elif response.status_code == 404:    #状态码404大概是格式后缀错误,改默认jpg为png
  24.             src = src.replace('jpg','png')
  25.             save_img_noreferer(path,src)
  26.         else:
  27.             print(src+',下载失败,网页状态码为:'+str(response.status_code))
  28.             with open('常用的/error.txt','a',encoding='utf8') as f:
  29.                 f.write(src+',下载失败,网页状态码为:'+str(response.status_code)+'\n')
  30. def save_imgs(k,v):    #多线程,配合save_img_noreferer()使用
  31.     while True:
  32.         glock.acquire()
  33.         if len(k) ==0:
  34.             glock.release()
  35.             break
  36.         else:
  37.             path = k.pop()
  38.             url = v.pop()
  39.             glock.release()
  40.             save_img_noreferer(path,url)
  41. def get_path_files(path):
  42.     ls_path_files = []
  43.     for i in os.walk(path):
  44.         ls_path_files.append(i[0])
  45.     del ls_path_files[0]
  46.     return ls_path_files
  47. def get_dict_path_url(ls_path_files):
  48.     path = []
  49.     url = []
  50.     for path_file in ls_path_files:
  51.         page_should = int(path_file.split('page=')[-1])    #完整页码数
  52.         page_actually = len(os.listdir(path_file))    #实际页码数
  53.         if page_should == page_actually:
  54.             pass
  55.         else:    #两者不相等说明缺失
  56.             num = path_file.split('id=')[-1].split('page=')[0]
  57.             ls_page_actually = []
  58.             for i in os.listdir(path_file):
  59.                 ls_page_actually.append(int(i.split('.')[0]))
  60.             for i in range(1,page_should+1):
  61.                 if i not in ls_page_actually:    #对于缺失的,添加其本地路径和图片地址
  62.                     img_name = str(i)+'.jpg'
  63.                     path.append(os.path.join(path_file,img_name))
  64.                     url.append('https://i0.nyacdn.com/galleries/'+num+'/'+img_name)
  65.     return dict(zip(path,url))    #返回本地路径:图片地址的字典
  66. def ctrl_x(path_old,path_new):
  67.     try:
  68.         shutil.move(path_old,path_new)
  69.     except:
  70.         with open('常用的/error.txt','w',encoding='utf8') as f:
  71.             f.write('剪切时发生出错\t'+path_old)
  72. def main():
  73.     path = input('请输入二级路径:')
  74.     ls_path_files = get_path_files(path)    #获取二级路径下各一级路径
  75.     dict_path_url = get_dict_path_url(ls_path_files)    #获取本地路径:图片地址的字典
  76.     if len(dict_path_url) == 0:
  77.         input('未发现有缺失,按任意键退出')
  78.     elif len(dict_path_url) <= 10:    #缺失小于等于10页,可能完全不能下载,用户选择
  79.         a = input('缺失'+str(len(dict_path_url))+',可能不能下载了,是否继续处理(y)')
  80.         if a == 'y':    #多线程下载
  81.             k = list(dict_path_url.keys())
  82.             v = list(dict_path_url.values())
  83.             for _ in range(64):
  84.                 consumer = threading.Thread(target=save_imgs,args=[k,v,])
  85.                 consumer.start()
  86.     else:    #缺失大于10页,以我检验4W+缺失的经历,应该不会超过10页,故自动补全
  87.         k = list(dict_path_url.keys())
  88.         v = list(dict_path_url.values())
  89.         for _ in range(64):
  90.             consumer = threading.Thread(target=save_imgs,args=[k,v,])
  91.             consumer.start()
  92. if __name__ == '__main__':
  93.     main()

用了os.walk(),老实说好用也不好用,反正我第一次用的时候过了很久才熟悉
其余看注释



使用说明:
①双击打开exe,等下如下图出现

②按照提示复制粘贴二级路径,(我对二级路径的定义是这样的:包含众多图片、文件夹名为漫画名的文件夹的路径叫一级路径。而包含大量一级路径文件夹的叫二级路径)(我不知道应该怎么叫,就这么解释,姑且贴个图,语文不好,见谅)(如果你下载了一本本漫画后没有做什么其他处理的话,那么这个二级路径应该是“D:\本子”)

记得回车开始
③有三种情况处理:
1)不缺失,会提示“未发现有缺失,按任意键退出”
2)缺失小于等于10页,会询问你要不要继续,当且仅当输入y继续,否则不做处理,处理完自动退出
3)如果大于10页,不做询问自动处理,处理完自动退出



注意:
①存在缺失完全不能下载的情况,我测试的时候是4W+不超过10页,所以阈值设的10
②程序自动退出是bug了还是,完成了,请再是一遍,理想情况下要么提示不缺失,要么提示缺失小于等于10
③如有问题请仔细阅读使用说明,仍不能解决请私信问题
④对于二级路径再次说明:二级路径是包含众多漫画的文件夹,漫画的文件夹下只能包含图片。否则可能会出现未知错误,对此问题不更新

战场原


战场原


godhand


银河中的天


铁血LXO


879105.jpg

1896ba4d

mark!

940908.gif

映落晓

B386F  2021-01-31 17:24
(天の道を行き 総てを司る)
可惜啊,这个好少啊

a11.gif

charaznable

mark

harrywu96


1266827.jpg

闲人1943

B389F  2021-02-03 11:42
(血肉苦弱,机械飞升)
顶顶,围观大佬

罪溺


65075a53


1421867117


新世纪复读机


....


5.gif

35e1f6b5

mark 研究

欧力给999


none.gif

886c84ca

翻墙草榴社区解决一切

none.gif

不破爱花

这个要MARK一下了

276272.jpg

画风即正义

B399F  2021-02-05 02:40
(电子阳痿)
图片:
图片:
分享一个我自己为了自己用起来方便 用翻译软件和自己对功能的理解翻译的一个韩国人开发的视频本子下载工具
汉化是2.6几的时候做的现在软件3.*了但是界面并没有太改,软件也用熟练了…所以没有后续接着弄

https://github.com/KurtBestor/Hitomi-Downloader

不会弄附件 就不弄了

monwk


133ec7d5


陌离f