漫画图片太好看,想要批量保存,可是没有提供批量保存的接口,这可怎么办,我要一张一张点吗?那是不可能的,教大家如何快速获取漫画图片。
获取漫画图片思路
漫画图片太多,万一网络断了,那就什么都没有了,过上一段时间,本来免费的漫画,突然不免费了,这可怎么办?
答案很简单,让它断网之后也可以看,这要怎么做到呢?首先我想到的就是爬虫,使用爬虫获取图片的url,然后再使用保存,文件保存,这样能获取所有的图片了,然后就获取到所有的漫画图片了,想想是不是有点心动。
先给你一个场景,假如说漫画在一段时间之后突然要收费了,但是你的漫画还可以看,这是不是一件很高兴的,然后你就可以对喜欢漫画的人说,喂!我有这部漫画,你要不要,20块买给你了。
代码实现
下面是代码的实现过程:
import re
import os
import requests
import time
import random
class kumiean():
def __init__(self):
self.f="D:\\漫画\\"
self.list=['Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1','Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50','Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11',
'Mozilla/5.0(Macintosh;U;IntelMacOSX10_6_8;en-us)AppleWebKit/534.50(KHTML,likeGecko)Version/5.1Safari/534.50',
'Mozilla/5.0(Windows;U;WindowsNT6.1;en-us)AppleWebKit/534.50(KHTML,likeGecko)Version/5.1Safari/534.50',
'Mozilla/5.0(compatible;MSIE9.0;WindowsNT6.1;Trident/5.0;',
'Mozilla/4.0(compatible;MSIE8.0;WindowsNT6.0;Trident/4.0)',
'Mozilla/5.0(WindowsNT6.1;rv:2.0.1)Gecko/20100101Firefox/4.0.1',
'Opera/9.80(Macintosh;IntelMacOSX10.6.8;U;en)Presto/2.8.131Version/11.11',
'Mozilla/5.0(Macintosh;IntelMacOSX10_7_0)AppleWebKit/535.11(KHTML,likeGecko)Chrome/17.0.963.56Safari/535.11',
'Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1;TencentTraveler4.0)',
'Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1;Trident/4.0;SE2.XMetaSr1.0;SE2.XMetaSr1.0;.NETCLR2.0.50727;SE2.XMetaSr1.0)',
'Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1;360SE)',
'Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1;Trident/4.0;InfoPath.2;.NET4.0C;.NET4.0E;.NETCLR2.0.50727;360SE) ',
'Mozilla/5.0(iPhone;U;CPUiPhoneOS4_3_3likeMacOSX;en-us)AppleWebKit/533.17.9(KHTML,likeGecko)Version/5.0.2Mobile/8J2Safari/6533.18.5',
'Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1;Trident/4.0;TencentTraveler4.0;.NETCLR2.0.50727)',
'Opera/9.80(Android2.3.4;Linux;Operamobi/adr-1107051709;U;zh-cn)Presto/2.8.149Version/11.10']
self.headers = {
'User-Agent': random.choice(self.list)
}
def url_4(self,url1):
"""获取本漫画的所有章节url"""
time.sleep(random.uniform(1, 4))
html = requests.get(url1, headers=self.headers)
ti = r'''<a href="(.*?)" title="(.*?)" target="_blank" style="max-width: 200px;">.*?</a>'''
url = re.findall(ti, html.text)
if url==[]:
pass
else:
for j in set(url):
self.f_3=self.f_2+"\\" + j[1]
if os.path.isdir(self.f_3)==True:
continue
else:
try:
os.mkdir(self.f_3)
except:
continue
self.url_5(j[0])
def url_5(self,url1):
"""保存该漫画的本话的所有图片"""
html = requests.get(url1, headers=self.headers)
ti = r'''<li style="margin-top: -3.6px"><span><img src="(.*?)" data-image_id="\d+" id="image_\d+"></span></li>'''
url = re.findall(ti, html.text)
if url == []:
print("vip章节,不能获取到目录")
return
else:
for j, url3 in enumerate(url):
f_4=self.f_3+"\\" + str(j) + ".jpeg"
if os.path.exists(f_4)==True:
continue
else:
ht = requests.get(url3, headers=self.headers).content
with open(f_4, "wb") as f:#写入文件中
f.write(ht)
好了,以上就是所有的代码,另外为了方便使用,专门制作了打包了一个软件,只需要输入你想要抓取的url地址就可以轻松获取到漫画。
注:本软件只适合个人使用,请勿用于商业用途。
欢迎关注公众号,公众后台回复“下载漫画” 获取网盘链接,还有更多有趣的软件等你来发现。
O ^ ~ ^ O
相关推荐……………………
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/111423.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...