python爬虫采集COSPLAY美图,阿巴阿巴 ~~

python爬虫采集COSPLAY美图,阿巴阿巴 ~~

redballoon
2022-10-08 / 0 评论 / 17 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年02月20日,已超过36天没有更新,若内容或图片失效,请留言反馈。

介绍

浅浅欣赏一下吧,质量还是不错滴

《原神》申鹤 cosplay2.jpg

开发环境:

  • Python 3.8
  • Pycharm

模块使用:

# 导入数据请求模块  --> 第三方模块 需要需要自行安装 pip install requests
import requests
# 导入数据解析模块  --> 第三方模块 需要自行安装 pip install parsel
import parsel
# 导入UA的库  --> 第三方模块 需要自行安装 pip install fake_useragent
from fake_useragent import UserAgent
# 导入正则模块 --> 内置模块
import re
# 导入文件操作模块 --> 内置模块
import os.path

实现基本思路:

  1. 找到图集详细页面,打开开发者工具 F12 再Element中分析到图片的详情页链接
  2. 请求图集页面,获取到响应数据
  3. 解析出刚刚分析的图片详情页的链接地址
  4. 发送请求,获取图片详情页响应数据
  5. 解析出图片详情页中的图片链接和标题信息
  6. 请求图片链接,以二级制格式保存.jpg到指定文件夹中

代码如下:

# -*- coding:utf-8 -*-
# @Author:🎈RedBalloon
# @Time:2022/10/8-9:09
# @File:cos.py
# 导入数据请求模块  --> 第三方模块 需要需要自行安装 pip install requests
import requests
# 导入数据解析模块  --> 第三方模块 需要自行安装 pip install parsel
import parsel
# 导入UA的库  --> 第三方模块 需要自行安装 pip install fake_useragent
from fake_useragent import UserAgent
# 导入正则模块 --> 内置模块
import re
# 导入文件操作模块 --> 内置模块
import os.path

for i in range(1, 6):  #1-5页
    print(f'++++++------正在下载{i}页------++++++')
    url = f'http://ciyuandao.com/photo/list/0-0-{i}'
    headers = {
        # 浏览器基本身份信息
        'User-Agent': UserAgent().random
    }
    response = requests.get(url=url, headers=headers, verify=False)
    # <Response [200]>  表示请求成功了 响应对象  verify=False 忽略证书验证的,看到报ssl就可以设置它
    print(response)

    # 初始化Selector
    selector = parsel.Selector(response.text)
    # 获取图集详情页的地址
    href = selector.css('.pics ul li .tits::attr(href)').getall()
    for index in href:
        # 'http://ciyuandao.com/photo/show/134563'
        pic_url = 'http://ciyuandao.com' + index
        # 拼接字符 -- 图集详情页完全的链接
        index_data = requests.get(url=pic_url, headers=headers).text
        index_selector = parsel.Selector(index_data)
        # 获取图集详情页里的图片链接
        img_url_list = index_selector.css('.talk_pic img::attr(src)').getall()
        # 获取图片标题
        title = index_selector.css('.border_bottom::text').get()
        # 保存时避免出现文件不允许的命名符号
        new_title = title = re.sub(r'[\/:*?"<>|]', '', title)
        # 计数器
        num = 1
        # 自动创建文件夹
        file = f'img\\{new_title}\\'
        # 判断如果没有这个文件夹
        if not os.path.exists(file):
            # 自动创建文件夹
            os.makedirs(file)
        # for循环遍历 提取列表里的图片链接
        for img_url in img_url_list:
            # 获取图片二进制数据
            img_content = requests.get(url=img_url, headers=headers).content
            # 保存图片
            with open(file + new_title + str(num) + '.jpg', mode='wb') as f:
                # 写入数据
                f.write(img_content)
                # 每次循环 +1
            num += 1
        print('下载完毕******'+title, pic_url)

美图欣赏:

洛天依cosplay5.jpg

《王者荣耀》西施·游龙清影cosplay9.jpg

《从零开始的异世界生活》蕾姆小恶魔cosplay7.jpg

《猫之城》特莉丝cosplay1.jpg

《永劫无间》 胡桃cosplay2.jpg

0

评论 (0)

取消