解锁VIP会员漫画:用Python爬虫轻松实现高清漫画下载

解锁VIP会员漫画:用Python爬虫轻松实现高清漫画下载

环境使用:

Python 3.10

Pycharm

模块使用:

requests >>> pip install requests 数据请求模块

parsel >>> pip install parsel 数据解析模块

模块安装:

win + R 输入cmd 输入安装命令 pip install 模块名

例如: requests >>> pip install requests

爬虫实现的基本流程

一. 数据来源分析

明确需求

明确采集的网站以及数据内容

网址: https://www.mkzhan.com/209412/1004107.html

数据: 漫画内容(41张图片)

抓包分析 (浏览器中进行操作)

通过浏览器自带开发者工具, 分析我们需要的数据内容在什么地方

开发开发者工具: F12 / 右键点击检查选择 network (网络)

刷新网页: 让网页数据内容重新加载一遍

找到图片链接: 过滤图片直接点击Img

通过关键字找到对应数据包: 存在一个数据包含了整章漫画内容数据 (41张图)

关键字: 使用图片链接中一段参数即可

数据包地址:

https://comic.mkzcdn.com/chapter/content/v1/?chapter_id=1004107&comic_id=209412&format=1&quality=1&sign=80cc6ea2ef3e7911cdaef9199d74c66a&type=1&uid=69982021

二. 代码实现步骤

发送请求

模拟浏览器对于url地址发送请求

模拟浏览器 (可以直接复制)

请求网址: https://comic.mkzcdn.com/chapter/content/v1/?chapter_id=1004107&comic_id=209412&format=1&quality=1&sign=80cc6ea2ef3e7911cdaef9199d74c66a&type=1&uid=69982021

发送请求: requests模块 根据开发者工具提示请求方法去发送即可

代码内容

导入模块

'''

Python学习交流,免费公开课,免费资料,

免费答疑,系统学习加QQ群:926207505

'''

import requests

import os

import parsel

import re

“”"

发送请求函数

“”"

def GetResponse(url):

# 模拟浏览器 (伪装)

headers = {

# User-Agent 用户代理, 表示浏览器基本身份信息

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36'

}

# 发送请求

response = requests.get(url=url, headers=headers)

# 返回值

return response

“”" 获取图片链接

“”"

'''

Python学习交流,免费公开课,免费资料,

免费答疑,系统学习加QQ群:926207505

'''

def GetImg(ID):

# 请求网址

url = f'https://comic.mkzcdn.com/chapter/content/v1/?chapter_id={ID}&comic_id=209412&format=1&quality=1&sign=80cc6ea2ef3e7911cdaef9199d74c66a&type=1&uid=69982021'

# 发送请求

response = GetResponse(url=url)

# 获取数据内容

JsonData = response.json()

# 解析数据 1. 提取图片链接所在列表 字典取值 (基础语法)

pages = JsonData['data']['page']

"""

# 创建空列表

ImgList = []

# 2. 提取列表里面元素, 并且提取图片链接

for page in pages:

# 提取图片链接

img = page['image']

# 把图片链接添加到 ImgList 列表里面

ImgList.append(img)

"""

# 列表推导式

ImgList = [page['image'] for page in pages]

# 返回内容

return ImgList

“”"

保存数据函数

“”"

def Save(img, title):

# 发送请求 + 获取数据内容

ImgContent = GetResponse(url=img).content

# 程序自动创建文件夹

if not os.path.exists('img'): # 判断如果没有

# 自动创建文件夹

os.mkdir('img')

# 指定了保存文件夹 -> img

with open(f'img\\{title}.jpg', mode='wb') as f:

f.write(ImgContent)

“”"

获取漫画信息: 名字 / 章节名 / 章节ID

“”"

'''

Python学习交流,免费公开课,免费资料,

免费答疑,系统学习加QQ群:926207505

'''

def GetInfo():

# 请求网址

link = 'https://www.mkzhan.com/209412/'

# 发送请求 + 获取数据

HtmlData = GetResponse(url=link).text

# 解析数据

selector = parsel.Selector(HtmlData)

# 提取名字

name = selector.css('.de-info__box .comic-title::text').get()

# 提取章节名 + 章节ID所在li标签 (所有)

lis = selector.css('.chapter__list .chapter__list-box .chapter__item')

# 创建空列表

TitleList = []

ChapterIdList = []

# for循环遍历, 二次提取

for li in lis:

# 提取章节名字

title = li.css('a::text').getall()[-1].strip()

# 提取章节ID

chapter_id = li.css('a::attr(data-chapterid)').get()

TitleList.append(title)

ChapterIdList.append(chapter_id)

return name, TitleList, ChapterIdList

def main():

# 获取漫画信息

name, TitleList, ChapterIdList = GetInfo()

for old_title, chapter_id in reversed(list(zip(TitleList, ChapterIdList))):

# 定义函数需要调用函数

ImgList = GetImg(ID=chapter_id) # 返回图片列表

print('正在保存: ', old_title)

# 定义标题变量

num = 1

# 替换特殊字符

title = re.sub(r'[\\/:*?"<>|]', '', old_title)

for img in ImgList:

ImgName = f'{title}-{num}'

# 调用保存函数

Save(img=img, title=ImgName)

num += 1

if __name__ == '__main__':

main()

尾语

最后感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

读者福利:如果大家对Python感兴趣,这套python学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。 二方面是可以根据这些资料规划好学习计划和方向。

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、Python量化交易等习教程。带你从零基础系统性的学好Python!

零基础Python学习资源介绍

① Python所有方向的学习路线图,清楚各个方向要学什么东西

② 600多节Python课程视频,涵盖必备基础、爬虫和数据分析

③ 100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论

④ 20款主流手游迫解 爬虫手游逆行迫解教程包

⑤ 爬虫与反爬虫攻防教程包,含15个大型网站迫解

⑥ 爬虫APP逆向实战教程包,含45项绝密技术详解

⑦ 超300本Python电子好书,从入门到高阶应有尽有

⑧ 华为出品独家Python漫画教程,手机也能学习

⑨ 历年互联网企业Python面试真题,复习时非常方便

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)

👉Python必备开发工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈

资料领取

这份完整版的Python全套学习资料已经上传网盘,朋友们如果需要可以点击下方微信卡片免费领取 ↓↓↓【保证100%免费】

相关推荐

新买紫砂锅怎么洗干净
63365

新买紫砂锅怎么洗干净

📅 06-27 👁️ 3744
Linux系统目录结构详细介绍
63365

Linux系统目录结构详细介绍

📅 06-28 👁️ 3589
淘宝交易记录多久?怎么导出来?
365体育注册送365

淘宝交易记录多久?怎么导出来?

📅 06-30 👁️ 4672