15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > 原来制作一个漫画网站这么简单!!!!!

原来制作一个漫画网站这么简单!!!!!

时间:2023-07-23 00:00:02 | 来源:网站运营

时间:2023-07-23 00:00:02 来源:网站运营

原来制作一个漫画网站这么简单!!!!!:

原来制作一个漫画网站这么简单!!!!!

制作一个漫画网站的流程是什么?

获取漫画数据

第一步必然是要获取到漫画数据,漫画平台可以说数不胜数,腾讯漫画,漫画台,咚漫漫画等等,所以我们要获取数据必然也是从这些平台去获取,这里就随便从一个漫画平台去分析获取漫画数据.

爬取网站四部曲

分析

我们以爬取比较热门的动漫--->妖神记

请添加图片描述



我们先随便进入一话




在这里插入图片描述



先打开控制台,第一时间查看请求,先判断我们需要的数据是通过Fetch/XHR还是文档直接生成的,通过这样去判断我们写脚本的方式是直接通过获取数据还是用xml去定位数据并获取




在这里插入图片描述
在这里插入图片描述



查看这个请求里面的参数和返回结果,寻找是否有我们想要的数据




在这里插入图片描述



用postman直接测试接口,查看是否需要cookie或者其他的header

在这里插入图片描述



可以看到并不需要任何其他条件(这样就简单了)

问题

参数有哪些变化,我们可以对比第一话和第二话的请求参数

在这里插入图片描述



很明显主要差别在于chapter_newid,那这个参数怎么获得,我们其实看看第一话和第二话的请求结果就会发现到这个参数




在这里插入图片描述



所以我们可以通过第一话就直接获得下一话参数,这样我们就可以开始写代码了

代码实现

import osimport requestsfrom PIL import Imagefrom io import BytesIOdef MergeImage(width, height, imgList, save_img): # -----create a new image-----# img = Image.new("RGB", (width, height), (0, 0, 0)) h = 0 for iimg in imgList: img.paste(iimg, (0, h)) h += iimg.size[1] img.save(save_img) print("保存成功")def saveComic(splitComic): headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.53", "Referer": "https://www.manhuatai.com/", "Accept": "image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8", } chapter_newid = "dyhzs" while True: params = { "product_id": 2, "productname": "mht", "platformname": "pc", "comic_id": 27417, "chapter_newid": chapter_newid, "isWebp": 1, "quality": "middle" } url = "https://www.manhuatai.com/api/getchapterinfov2" # 请求漫画api resp = requests.get(url=url, params=params, headers=headers).json() # 获取标题 chapter_name = resp['data']['current_chapter']['chapter_name'] # 获取当前话的图片列表 chapter_img_list = resp['data']['current_chapter']['chapter_img_list'] # 获取目录名 dirName = f"./result/{resp['data']['comic_name']}" # 判断目录是否存在,不存在则创建目录 if not os.path.exists(dirName): os.mkdir(dirName) index = 1 imgList = [] maxWidth = 0 height = 0 for imgUrl in chapter_img_list: content = requests.get(url=imgUrl, headers=headers).content if not splitComic: # 直接将分开的图片合并在一起 bytes_stream = BytesIO(content) image = Image.open(bytes_stream) imgList.append(image) maxWidth = max(maxWidth, image.size[0]) height += image.size[1] else: # 判断目录是否存在,不存在则创建目录 if not os.path.exists(dirName+"/"+chapter_name): os.mkdir(dirName+"/"+chapter_name) with open(f"{dirName}/{chapter_name}/{chapter_name}{index}.webp",mode="wb") as fs: fs.write(content) index += 1 if not splitComic: MergeImage(maxWidth, height, imgList, f"{dirName}/{chapter_name}.png") # 最后一话直接跳出 if resp['data']['next_chapter']: # 获取下一话的chapter_newid chapter_newid = resp['data']['next_chapter']['chapter_newid'] next_chapter_name = resp['data']['next_chapter']['chapter_name'] print(f"{chapter_name}已经下载完成,即将下载{next_chapter_name},chapter_newid为{chapter_newid}") else: breakif __name__ == '__main__': saveComic(False)


在这里插入图片描述






在这里插入图片描述



制作html页面




请添加图片描述



想要获取全部html和python源码,请关注公众号-->爱上开源




在这里插入图片描述






关注微信公众号【爱上开源】,该公众号会为你提供作者在网上找到有趣的开源项目,会将使用过程写成文章呈现给读者.公众号还提供爬虫和部分计算机资源给读者.如果读者想要什么资源可以私信给我,作者会尽力查询(不要涉嫌违法资源即可)



关键词:简单,漫画

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭