zoukankan      html  css  js  c++  java
  • 网不好,看个漫画加载半天?教你用Python批量下载网站所有漫画(附源码和视频教程)

    回老家去了,显得无聊上网看个小漫画,不是那种你们想的~
    在这里插入图片描述
    结果真的是移不动联不通信不过了,不是一格信号就是无信号,4G变2G了,搞心态!
    在这里插入图片描述
    没办法,只能连夜跑去网吧编程,用Python直接把整个网站的漫画都给爬下来传手机上了。
    在这里插入图片描述
    哎,这回我就不慌了~

    还好我爬的是正经的漫画,不然后面一堆人,在网吧敲代码,真是有点特立独行了。

    我回来之后,把这个做了个视频版教程,大家有需要的可以直接在文末拿,我直接把视频链接发出来了~
    在这里插入图片描述
    好了,简单的介绍下我们今天的内容叭~


    首先咱们用的是这些环境

    Python3.6 
    pycharm

    涉及到的知识点

    requests
    parsel   pip install 模块名
    re
    os

    大概流程

    一、单章节爬取

    1. 找到受害者 https://www.kuimh.com/chapter/332265-3351141
    2. 向受害者发送请求
    3. 获取数据:获取源代码
    4. 解析网页源代码: 提取漫画章节名, 每一页图片所在地址
    5. 保存数据: 图片数据

    二、整本漫画爬取

    1. 请求 https://www.kuimh.com/book/mh10575
    2. 获取数据:获取源代码
    3. 解析网页源代码: 获取每一话所在地址
    4. 循环爬取,保存数据
    import os
    import re
    import parsel
    import requests

    1.正确url地址(静态动态)

    url = "https://www.kuimh.com/book/mh10575"

    获取动漫章节链接和章节名

    response = requests.get(url=url)
    selector = parsel.Selector(response.text)

    伪类选择器nth-child(第几个标签)
    ::text 获取文本内容
    ::attr 获取标签属性值

    title_list = selector.css('#detail-list-select li a:nth-child(2)::text').getall()
    url_list = selector.css('#detail-list-select li a:nth-child(2)::attr(href)').getall()
    if not os.path.exists('./妖神记/'):
        os.makedirs('./妖神记/')

    f:可以传入参数

    for title, url in zip(title_list, url_list):
    print(f'--------------------------正在爬取{title}-------------------------')
    index = 1
    target_url = f"https://www.kuimh.com{url}"
    resp = requests.get(target_url)
    selector = parsel.Selector(resp.text)
    sub_url_list = selector.css('.comicpage div img::attr(src)').getall()[:3]
    sub_list = selector.css('.comicpage div img::attr(data-echo)').getall()
    for i in sub_list:
        sub_url_list.append(i)

    r:防止字符串转义

    title = re.sub(r'[/:*?"<>|.]', "", title)
        if not os.path.exists('./妖神记/' + title):
            os.makedirs('./妖神记/' + title)
        for url_ in sub_url_list:
            image = requests.get(url_).content
            with open('./妖神记/' + title + '/'+''+str(index)+'页.jpg', mode='wb') as f:
                f.write(image)
            print('', str(index), '页,爬取成功')
            index += 1
        print(title, '爬取成功!!!')

    看不懂的话,建议直接看视频教程~

    看到最后的小伙伴都有福利,给大家送一个VIP音乐下载器,聪明的小伙伴肯定能找到在哪领的(视频里面)~

    在这里插入图片描述

  • 相关阅读:
    Splay专题总结
    UVa12657
    ZOJ3772
    POJ1743
    高斯消元模板
    python使用chrom登陆微博
    mysql常用数据库(表)命令
    mysql索引
    mysql建表的时候,时间戳的选用
    php 金额每三位添加一个逗号
  • 原文地址:https://www.cnblogs.com/hahaa/p/15181887.html
Copyright © 2011-2022 走看看