用Python下载漫画,每天掌握一个实用知识

嗨嗨,大家好

最近看小说和漫画看的有点上头…

就顺便用Python来采集一下漫画吧

随便抓个漫画分享一下,搞清楚思路后,自己多练练就能自己采集想看的漫画咯

请添加图片描述

知识点:

  • 爬虫基本流程
  • 保存海量漫画数据
  • requests的使用
  • base64解码

开发环境:

  • 版 本: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(终端) 输入安装命令

实现代码:

  1. 发送请求
  2. 获取数据
  3. 解析数据
  4. 保存数据

代码

import base64
import requests
import re
import json
import parsel
import os
# 伪装
headers = {
    # 用户信息
    'cookie': '__AC__=1; tvf....

在这里插入图片描述

源码.资料.素材.点击领取即可

select = parsel.Selector(requests.get(main_url, headers=headers).text)
title_list = select.css('.chapter-page-all.works-chapter-list li a::text').getall()
link_list = select.css('.chapter-page-all.works-chapter-list li a::attr(href)').getall()

for title, link in zip(title_list, link_list):
    url = 'https://ac.qq.com' + link
    title = title.strip()
    if not os.path.exists(f'中国惊奇先生/{title}'):
        os.makedirs(f'中国惊奇先生/{title}')
    # 1. 发送请求
    response = requests.get(url=url, headers=headers)
    print(title, url)
    # 2. 获取数据
    html_data = response.text
    # 3. 解析数据
    DATA = re.findall("var DATA = '(.*?)'", html_data)[0]
    for i in range(len(DATA)):
        try:
            json_str = base64.b64decode(DATA[i:].encode("utf-8")).decode("utf-8")
            json_str = re.findall('"picture":(\[.*?\])', json_str)[0]
            # 字符串 转 字典/列表
            json_list = json.loads(json_str)
            count = 1
            for imgInfo in json_list:
                imgUrl = imgInfo['url']
                print(imgUrl)
                # 4. 保存数据
                img_data = requests.get(url=imgUrl).content
                with open(f'中国惊奇先生/{title}/{count}.jpg', mode='wb') as f:
                    f.write(img_data)
                count += 1
            break
        except:
            pass

请添加图片描述

最后效果

在这里插入图片描述

在这里插入图片描述

好啦,文章分享到这里也就结束啦

想用视频学习Python的可以点击此处~

或者在小破站搜索:Python小圆

对文章有问题的,或者有其他关于python的问题,可以在评论区留言或者私信我哦
觉得我分享的文章不错的话,可以关注一下我,或者给文章点赞(/≧▽≦)/

请添加图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值