abcfy2 / getComic

Download tencent comic-下载腾讯漫画

Home Page:http://my.oschina.net/abcfy2/blog/294668

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

希望添加抓取特定章节的功能

hzy199411 opened this issue · comments

必须要全部抓取,感觉不实用

打算在图形化界面下实现。因为windows蛋疼的gbk编码问题,有些章节编码就会报错,导致显示不出来章节列表(Linux下无此问题),所以没加入指定章节的功能。打算在图形化界面用一个list check box显示章节,理论上可以搞定这个问题。

计划本周内抽空完成。另外,下载过的文件是不会重复下载的,程序有判定,如果目标文件存在就跳过下载,所以续传什么的没问题。不过需要注意的是可能异常关闭的时候并不会删掉未下载完成的文件(比如直接点了控制台的X关闭窗口,程序捕获不到这个),这时候需要手工删掉最后一个未下载完的文件重试。

我自己改了改,可以抓取从a到b的章节,因此增加了两个参数,感觉增加了复杂性,就不push了

应该不会太复杂,等会我改下程序就行了,加个参数搞定这个问题。

打算这么实现,支持章节序列做参数,如1,2,3,4-10,30,对应正则re.match(r'\d+([,-]\d+)*')。是否有必要加入列表切片特性?比如支持步长?感觉似乎没必要,没人那么蛋疼的去单独爬取偶数章节吧

章节序列做参数,这样就足够了,另外海贼王抓取的话数从304话就比实际多一话

会做判定的,不会让列表out of index的

2be5481

增加-l|--list参数,指定以下类型格式,如:

-l 1,3,5
-l 5-7,10-100
-l 50
...

设置章节区间,并且加入以下规则判定:

  • 使用该正则过滤参数: r'[^\d+([,-]\d)*$]'
  • 如果出现数字0,打印相关警告,单独数字0直接忽略,区间(如0-9, 100-0等)出现0则置为1
  • 对参数解析之后进行去重和排序
  • 对于超过章节列表的参数,给出警告信息,并且直接忽略

增加了一个函数parseLIST(lst)用于解析-l|--list后面的参数,返回一个解析过的章节列表list

main()函数增加一个参数lst=None(main(url, path, lst=None)),用于承接-l|--list参数。

详细修改可以看commit的diff。

以上,欢迎测试,有任何BUG(s)都欢迎直接在这个issue回复

PS:代码250行~~~好整齐的数字

不错,能正常下载特定章节,就是警告有点问题:比如下载1-10时 会出现,“警告: 参数中包括不存在的章节0,自动忽略”

感谢反馈,已修复。是我把这句的逻辑搞错了,判断min-max或者max-min这一类的格式的时候,如果min=0,就提示这个警告,我刚好给搞反了。已经修复这个BUG,可以看到commit记录在此 54fa100

顺便再加上一个commit,突然发现不加-l参数的时候少最后一话,检查发现range()的范围给搞错了,最后是半开半闭区间,最大值需要+1