python实战案例:采集某漫客《网游之近战法师》所有章节

news2025/1/15 12:56:06

前言

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

环境使用:

  • Python 3.8

  • Pycharm

模块使用:

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

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

如果安装python第三方模块:

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车

  2. 在pycharm中点击Terminal(终端) 输入安装命令

基本思路流程: <通用的>

二. 代码实现步骤

  • 获取章节ID/章节名字/漫画名字:

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

      请求链接: 漫画目录页url

    2. 获取数据, 获取服务器返回响应数据

      开发者工具: response

    3. 解析数据, 提取我们想要的数据内容

      章节ID/章节名字/漫画名字

      • 获取漫画图片链接:
    4. 发送请求, 模拟浏览器对于url地址发送请求

      请求链接:

    5. 获取数据, 获取服务器返回响应数据

      开发者工具: response

    6. 解析数据, 提取我们想要的数据内容

      • 漫画图片链接
    7. 保存数据

python应用方向:

<数据方面岗位方向比较好的>

  1. 采集程序:

批量采集数据内容, 自动化脚本<自动点赞/评论/投币/收藏/发送弹幕/刷票/抢票>

  1. 数据分析:

数据处理/可视化图表/数据预测

  1. 网站开发:

开发网站 --> 比如 豆-瓣 , 知-乎 , 美-团 , youtube 这些都用过python开发网站 电商平台/论坛/博客/视频网站/小说网站/后台信息管理系统…

  1. 人工智能:

算法, 人脸识别/物体识别检测…

  1. 自动化办公:

重复批量操作 比如批量处理文件, 文件分类改格式 自动发送邮件, 电脑自动操控, 手机自动操作

  1. 自动化测试/运维

  2. 游戏开发/辅助

  3. 树莓派

  4. 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)

效果展示

尾语 💝

要成功,先发疯,下定决心往前冲!

学习是需要长期坚持的,一步一个脚印地走向未来!

未来的你一定会感谢今天学习的你。

—— 心灵鸡汤

本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 😝

👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/156210.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++学习之旅 第五章(字符应用:小写字母转大写字母)

开头&#xff1a; 上一节我们讲了关于char类型许多知识&#xff0c;今天我们来更深层的学习一下字符实际上面的应用&#xff01; ASCII码简介&#xff1a; 我们要进行字符的应用&#xff0c;首先就是要了解一下ACSII码: ASCII(全名&#xff1a;American Standard Code for Inf…

win10如何安装多个jdk并实时进行切换【建议收藏】

在windows10的系统中&#xff0c;如何安装jdk或者安装多个jdk版本&#xff0c;博主在这里整理了一份非常完美的jdk版本安装教程&#xff0c;且jdk版本可以随时切换&#xff0c;切换过程不超过10秒&#xff0c;让你在jdk版本中穿梭自如&#xff0c;直接可以食用&#xff0c;掌握…

【前端】ES6

let 和 const 类似var定义变量&#xff0c;但是let修饰的变量仅在声明的代码块中有效&#xff1b; var声明的变量&#xff0c;在全局有效 for (let i 0; i < 3; i) {let i abc;console.log(i); }js中的for循环声明循环变量的部分也作为一个父作用域&#xff0c;即(let i…

虹科方案|数据中心虚拟化和 HK-ATTO 产品—旨在协同工作的端到端解决方案

一、概述虚拟化技术正迅速成为现代数据中心的基础&#xff0c;因为IT 管理寻求显着提 高资源和运营效率以及对业务需求的响应能力。三个关键技术非常重要&#xff1a;服务器虚拟化、结构虚拟化和存储虚拟化。 本次介绍了 HK-ATTO 产品如何作为这些虚拟化解决方案中 每一个的关键…

【图像处理OpenCV(C++版)】——4.1 对比度增强之灰度直方图

前言&#xff1a; &#x1f60a;&#x1f60a;&#x1f60a;欢迎来到本博客&#x1f60a;&#x1f60a;&#x1f60a; &#x1f31f;&#x1f31f;&#x1f31f; 本专栏主要结合OpenCV和C来实现一些基本的图像处理算法并详细解释各参数含义&#xff0c;适用于平时学习、工作快…

声纹识别与声源定位(二)

一、引言 什么是声源定位(Sound Source Localization&#xff0c;SSL)技术&#xff1f;声源定位技术是指利用多个麦克风在环境不同位置点对声信号进行测量&#xff0c;由于声信号到达各麦克风的时间有不同程度的延迟&#xff0c;利用算法对测量到的声信号进行处理&#xff0c;由…

【瑞萨RA4系列】使用TinyMaix识别手写数字

文章目录一、TinyMaix简介1.1 TinyMaix开源项目1.2 下载TinyMaix源码二、TinyMaix移植2.1 创建TinyMaix移植项目2.2 添加TinyMaix源码三、TinyMaix测试准备3.1 SysTick计时3.2 printf打印3.4 修改tm_port.h文件3.6 增大堆内存空间四、手写数字识别4.1 添加示例源码4.2 运行示例…

突破6.8关口 人民币汇率快速升值,释放什么信号?

近期以来&#xff0c;人民币表现强劲。2023年开年6个交易日&#xff0c;人民币对美元汇率中间价实现“六连涨”&#xff0c;累计上调2035个基点&#xff0c;升破6.8关口&#xff0c;展现出全新面貌。哪些因素影响近期人民币对美元汇率上涨&#xff1f;人民币兑美元汇率未来走势…

漏洞复现--xss

目录 一、实验目的 二、实验环境 三、 实验过程 搭建XSS平台 制作XSS脚本并注入 利用Cookie登录用户账号 一、实验目的 实验目的 本实验学习如何搭建个人的XSS平台以及如何使用XSS平台盗用用户Cookie登录。 二、实验环境 服务器&#xff1a;Windows 7 Target IP:10.1.…

【笔记:第5课】学习开发一个RISC-V上的操作系统 - 汪辰 - 2021春

文章目录前言来源正文小结前言 创作开始时间&#xff1a;2023年1月11日16:55:32 如题&#xff0c;学习一下RISC-V。 来源 https://www.bilibili.com/video/BV1Q5411w7z5?p5&vd_source73a25632b4f745be6bbcfe3c82bb7ec0 刚刚才知道老师是PLCT实验室的&#xff0c;牛。…

C 程序设计教程(16)—— 循环结构程序设计

C 程序设计教程&#xff08;16&#xff09;—— 循环结构程序设计 该专栏主要介绍 C 语言的基本语法&#xff0c;作为《程序设计语言》课程的课件与参考资料&#xff0c;用于《程序设计语言》课程的教学&#xff0c;供入门级用户阅读。 目录C 程序设计教程&#xff08;16&…

Vue3之对Dialog的简单封装

之前使用的UI框架,无论是Element UI/Plus 还是 Ant design&#xff0c;其中Dialog组件中的结构和样式都难以修改&#xff0c;无论是使用less、deep还是其他方法&#xff0c;对其组件中css的修改都不生效&#xff08;不确定是否有其他解决方法&#xff09;&#xff0c;所以我就自…

【小白必看】2023年PMP考试报名时间,报考条件,超全PMP备考指南

PMP 考试一年能考四次&#xff0c;分别是3月、6月、9月、12月&#xff0c;提前 2 个月开始报名&#xff0c;但还是要关注PMI/基金会官网的信息&#xff0c;有特殊情况的会在官网公布。现在放开了&#xff0c;2023年PMP 考试应该不会再延期了&#xff0c;之前没考上的&#xff0…

重装系统win11的步骤和详细教程

想要给电脑重装系统win11使用&#xff0c;但是自己对于相关的重装操作不熟悉怎么样?我们可以网上的小白装机工具实现&#xff0c;那么具体怎么重装系统win11?下面就演示下重装系统win11的步骤和详细教程。 工具/原料&#xff1a; 系统版本&#xff1a;Windows 11 品牌型号…

js使用小顶堆构建优先级队列

什么是优先级队列? 优先级队列是队列的一个变种,队列是一个先进先出的结构,在头部出队元素在尾部入队元素, 优先级队列顾名思义就是给每个元素具备了优先级,优先级决定了元素在队列中的存储位置,优先级越高的越靠前越先出队 小顶堆又是什么? 小顶堆是堆结构的一个分支,堆…

浙大MEM提面优秀成功上岸经验分享——完全准备才能“聊”的好

近期元旦放假&#xff0c;终于有时间写一写关于自己浙大MEM提面上岸的一些经验分享了。这篇可能对接下来参加2024年浙大mem考试的考生会有一些作用。因为我是参加了提前批面试&#xff0c;并在面试中取得了优秀的资格&#xff0c;所以这也为我后续的联考和录取环节减轻了不少的…

[JAVA安全]filter 内存马

原理&#xff1a; Servlet 有自己的过滤器 filter &#xff0c; 可以通过自定义的过滤器&#xff0c;来对用户的请求进行拦截等操作。 经过filter 之后才会刀Servlet &#xff0c;如果我们动态创建一个 filter 并且将其放在最前面&#xff0c;我们的filter 就会最先被执行&…

Java多线程案例——线程池及ThreadPoolExecutor类

一&#xff0c;线程池1.为什么会有线程池&#xff1f;线程池和多线程的区别&#xff1f;为了很好的解决高并发问题&#xff0c;提高计算机的运行效率&#xff0c;提出了多线程来取代多进程&#xff08;因为一个线程的创创建、销毁和调度比进程更加“轻量”&#xff0c;所以线程…

杰卡德相似度(Jaccard)详解及在UserCF中的应用

1、杰卡德相似度(Jaccard) 这个是衡量两个集合的相似度一种指标。 两个集合A和B的交集元素在A&#xff0c;B的并集中所占的比例&#xff0c;称为两个集合的杰卡德相似系数&#xff0c;用符号J(A,B)表示 另一种表示的方法&#xff1a; jaccard系数衡量维度相似性 jaccard系数很…

IT运维.服务器常见资质认证

3C证书 强制要求 CCC认证的全称为“中国强制性产品认证“ 它是为保护消费者人身安全和国家安全、加强产品质量管理、依照法律法规实施的一-种产品合格评定制度。, 节能