Python采集某漫画网站<灵剑尊>VIP漫画内容

前言

嗨喽,大家好呀~这里是爱看美女的茜茜呐

环境使用:

  • Python 3.8

  • Pycharm

模块使用:

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

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

安装方法:

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

(如果你觉得安装速度比较慢, 你可以切换国内镜像源)

本次 采集目标:灵剑尊


👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~

素材、视频教程、完整代码、插件安装教程我都准备好了,直接在文末名片自取就可


案例分为三部分:

一. 采集单章漫画内容

二. 采集整本漫画内容

三. 采集整个网站内容

代码展示

导入模块

# 导入数据请求模块 
import requests
# 导入数据解析模块
import parsel
# 导入正则
import re
"""
1. 发送请求: 模拟浏览器对于url地址发送请求
- 模拟浏览器: 防止被反爬
    headers请求头 <开发者工具中复制>
- 请求url地址
- 发送请求 / 请求方式
"""

模拟浏览器 构建字典形式

headers = {
    # User-Agent 用户代理 表示浏览器基本身份信息
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}

请求目录页

link = 'https://www.mkzhan.com/209412/'
```python
# 发送请求
link_response = requests.get(url=link, headers=headers)

获取数据 response.text 获取响应文本数据

link_data = link_response.text
"""
3. 解析数据: 提取我们需要的内容 <章节名字 / 章节ID>
css/xpath 根据标签去提取数据
"""

把获取到 link_data, 转成可解析对象

selector = parsel.Selector(link_data)

提取所有li标签

lis = selector.css('.chapter__list-box li')
for li in reversed(lis):
    # 章节ID
    chapter_id = li.css('a::attr(data-chapterid)').get()
    # 标题
    title = li.css('a::text').getall()[-1].strip()
    new_title = re.sub(r'[\\/:*?"<>|]', '', title)
    print(chapter_id, new_title)

请求url地址

    url = f'https://*****chapter/content/v1/?chapter_id={chapter_id}&comic_id=209412&format=1&quality=1&sign=6ea4c8f31223f71074cf40a3df72ddb2&type=1&uid=64751792'

发送请求

    response = requests.get(url=url, headers=headers)
"""
2. 获取数据: 获取服务器返回响应数据
    <Response [200]> 响应对象
        200 状态码 表示请求成功
    response.json() 获取响应json数据内容

3. 解析数据: 提取我们需要的内容 <图片链接>
    response.json() --> 字典
    需要的数据 --> image对应值
字典取值: 键值对取值 <根据冒号左边的内容[键], 提取冒号右边的内容[值]>
"""

定义num 作为文件名序号

    num = 1
    for index in response.json()['data']['page']:
        # 漫画内容链接
        img_url = index['image']
   """
    4. 保存数据: 获取图片内容, 保存本地文件夹
        - 获取图片内容 <对于图片链接发送请求, 然后获取二进制数据内容>
        response.content 获取响应二进制数据
    """

对于图片链接发送请求, 获取二进制数据 <图片内容>

        img_content = requests.get(url=img_url, headers=headers).content
        # 'img\\' + str(num) + '.jpg' 设置文件路径和文件名格式
        # mode='wb' 保存方式
        # as f 重命名为F
        with open('img\\' + new_title + str(num) + '.jpg', mode='wb') as f:
            # 写入数据
            f.write(img_content)
            # 每次循环加1
            num += 1
        print(img_url)

尾语

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

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

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

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值