讲真的, 手机看漫画翻页总是会手残碰到页面上的广告好吧...
要是能只需要指定一本漫画的主页URL就能给我返回整本漫画就好了...
还是使用Python来实现, 取个名字...就叫 ComicReaper(漫画收割者) 吧!
首先我们要获取当前漫画所有章节的标题与URL(标题用于后期存储时文件夹的命名, URL用于跳转到当前章节的开始页面)
首先是 chapterIndexReaper 函数, 主要用来"收割"当前漫画的所有章节并存储为字典列表
代码如下 :
1 #获取一本漫画的所有章节的目录 2 def chapterIndexReaper(url_host, header): 3 # 定义一个临时字典, 用于临时存储一个章节的标题与url 4 dic_temp = { 5 'Title' : '', 6 'Url' : '' 7 } 8 # 章节字典列表, 存储当前漫画的所有章节字典 9 set_dic = [] 10 # 构建Request对象 11 req = urllib.request.Request(url = url_host, headers = header) 12 # 读取所请求的req并用utf-8编码来进行解码, 所得到的的字符串赋值给html 13 html = urllib.request.urlopen(req).read().decode('utf-8') 14 # 爬取漫画章节标题与url的正则表达式 15 pat = r'<a class="fixed-a-es" href="(.*?)" title="(.*?)"' 16 # 使用pat在html中进行进行匹配(re.S参数是为了让"."除了能够匹配本身规定的字符, 17 # 另外也能匹配"\n"), 返回一个结果列表res 18 res = re.findall(pat, html, re.S) 19 for i in res: 20 dic_temp['Title'] = i[1] 21 dic_temp['Url'] = url_head + i[0] 22 # 向当前的章节字典列表的后面追加新的章节, 注意, 此处要使用浅拷贝 23 # (因为dic_temp是一个临时变量, 需要创建它的副本并追加到set_dic中去, 24 # 否则当dic_temp刷新时set_dic中的元素会相应发生改变) 25 set_dic.append(dic_temp.copy()) 26 return set_dic