打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python采集漫客栈所有数据,从此看漫不用money

前言

大家早好、午好、晚好吖 ❤ ~

环境使用:

  • Python 3.8

  • Pycharm

模块使用:

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

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

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

二. 代码实现步骤

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

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

      请求链接: 漫画目录页url

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

      开发者工具: response

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

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

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

      请求链接:

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

      开发者工具: response

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

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

代码展示

导入模块

# 导入数据请求模块 --> 第三方模块, 需要安装 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)
# 把获取下来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'

发送请求

    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)

效果展示

尾语 💝

好了,今天的分享就差不多到这里了!

完整代码、更多资源、疑惑解答直接点击下方名片自取即可。

宁外给大家推荐一个好的教程:

【48小时搞定全套教程!你和大佬只有一步之遥【python教程】

有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง ·_·)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
python:谁还能抵挡我的脚步,VIP也抵挡不住啦~
Python爬虫入门教程:豆瓣Top电影爬取
Python爬虫实战案例:取喜马拉雅音频数据详解
50行Python代码实现自动下载小说,并打包exe直接
一个1000元的爬虫外包项目,三种爬虫模式给你轻松做出来
Python制作自动答题脚本,100%准确率,1秒10题提高效率
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服