前言
嗨喽~大家好呀,这里是魔王呐 ❤ ~!
环境使用:
-
Python 3.8
-
Pycharm
模块使用:
-
requests >>> pip install requests 数据请求模块
-
parsel >>> pip install parsel 数据解析模块
如果安装python第三方模块:
-
win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
-
在pycharm中点击Terminal(终端) 输入安装命令
基本思路流程: <通用的>
二. 代码实现步骤
-
获取章节ID/章节名字/漫画名字:
-
发送请求, 模拟浏览器对于url地址发送请求
请求链接: 漫画目录页url
-
获取数据, 获取服务器返回响应数据
开发者工具: response
-
解析数据, 提取我们想要的数据内容
章节ID/章节名字/漫画名字
- 获取漫画图片链接:
-
发送请求, 模拟浏览器对于url地址发送请求
请求链接:
-
获取数据, 获取服务器返回响应数据
开发者工具: response
-
解析数据, 提取我们想要的数据内容
- 漫画图片链接
-
保存数据
-
python应用方向:
<数据方面岗位方向比较好的>
- 采集程序:
批量采集数据内容, 自动化脚本<自动点赞/评论/投币/收藏/发送弹幕/刷票/抢票>
- 数据分析:
数据处理/可视化图表/数据预测
- 网站开发:
开发网站 --> 比如 豆-瓣 , 知-乎 , 美-团 , youtube 这些都用过python开发网站 电商平台/论坛/博客/视频网站/小说网站/后台信息管理系统…
- 人工智能:
算法, 人脸识别/物体识别检测…
- 自动化办公:
重复批量操作 比如批量处理文件, 文件分类改格式 自动发送邮件, 电脑自动操控, 手机自动操作
-
自动化测试/运维
-
游戏开发/辅助
-
树莓派
-
GUI界面开发
代码展示
# 导入数据请求模块 --> 第三方模块, 需要安装 pip install requests
import requests
# 导入数据解析模块 --> 第三方模块, 需要安装 pip install parsel
import parsel
# 导入文件操作模块 --> 内置模块, 不需要安装
import os
# 请求链接 <目录页url>
url = 'https://www.******.com/208707/'
# 伪装模拟
headers = {
# user-agent 用户代理, 表示浏览器基本身份信息 Chrome 浏览器名字 101.0.0.0 浏览器版本 Windows 电脑系统
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
}
# 发送请求
response = requests.get(url=url, headers=headers)
源码、解答、教程、资料加Q君羊:261823976##
# 把获取下来html字符串数据内容<response.text>, 转换成可解析对象
selector = parsel.Selector(response.text) # <Selector xpath=None data='<html>\n <head>\n <title>网游之近战法师_网游...'>
# 提取漫画名字
name = selector.css('.de-info__box .comic-title::text').get()
# 自动创建文件夹 以漫画名字作为文件夹名
file = f'{name}\\'
if not os.path.exists(file):
os.mkdir(file)
# 第一次提取所有li标签, 返回是对象, 我不需要提取li标签里的内容
lis = selector.css('.chapter__list .chapter__list-box .chapter__item')
# 如何一个一个提取列表当中元素? for循环遍历
for li in list(reversed(lis)):
# 提取章节ID +为什么加的意思
chapter_id = li.css('a::attr(data-chapterid)').get()
# 提取章节名字
chapter_title = li.css('a::text').getall()[-1].strip()
# 请求链接: 漫画集合链接 --> f'{}' 字符串格式化方法, 相当于, 把chapter_id传入link这段字符串当中
link = f'https://comic.******.com/chapter/content/v1/?chapter_id={chapter_id}&comic_id=208707&format=1&quality=1&sign=5a5b72c44ad43f6611f1e46dd4d457bf&type=1&uid=61003965'
# 发送请求
源码、解答、教程、资料加Q君羊:261823976##
json_data = requests.get(url=link, headers=headers).json()
num = 1
print(chapter_title)
# for循环遍历, 一个一个提取列表元素
for index in json_data['data']['page']:
# 字典取值
image = index['image']
img_content = requests.get(url=image).content
with open(file + chapter_title + str(num) + '.jpg', mode='wb') as f:
f.write(img_content)
num += 1
print(image)
效果展示
尾语 💝
要成功,先发疯,下定决心往前冲!
学习是需要长期坚持的,一步一个脚印地走向未来!
未来的你一定会感谢今天学习的你。
—— 心灵鸡汤
本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 😝