原神2.0宅男福利!Python爬虫实战,抓取原神真人cos图片并保存,谁的老婆赶紧抱走

前言

激动的心,颤抖的手,老婆你们谁没有?

7月21号《原神》2.0发布,大家更新了吗?

如果有正在跟我一样的自学的朋友,需要我本篇的代码或者其他的Python学习资料可以加Python新手学习交流群:594356095添加助理直接获取

更新内容一览:

1、稻妻城:稻妻城和六大岛屿相连,目前新的岛屿只是其中三个;

2、家园系统更新:会新增植物,种植系统;

3、新圣遗物:稻妻会上三种新圣遗物;

4、主要登场人物:八重神子、珊瑚宫星海,早柚、神里绫华、托马、巴尔、宵宫、五郎。

 

激动的我,在逛米游社的时候,看着这些cos美女已经按捺不住了,连夜的给大家爬了cos同人图,保存了!有福同享,下面我们一起来看看这些美女,不对是代码操作,正好给大家一个练手的小项目!

原神2.0宅男福利!Python爬虫实战,抓取原神真人cos图片并保存,谁的老婆赶紧抱走的图1 

图片1.png

 

首先,我们来看看效果图:

图片2.png

 

开发环境:Python3.6

模块(库): requests/json/os/threading

爬取目标:https://bbs.mihoyo.com/ys/home/49 (米游社.原神)

目的:爬取COS专区下的图片,并保存

图片3.png

原神2.0宅男福利!Python爬虫实战,抓取原神真人cos图片并保存,谁的老婆赶紧抱走的图5 

在COS专区下的图片排序以最新回复栏目排序,因此所爬取的图片会随着最新的时间而更改。程序运行时自动爬取最新20条最新图片。

原神2.0宅男福利!Python爬虫实战,抓取原神真人cos图片并保存,谁的老婆赶紧抱走的图6 

图片4.png


1、导入库

import requests
import json
import os
import threading

 

2、初始化URL地址、设置UA代理(注意:这里的url并不是首页,而是一个二级页面)

class WebSpider(object):
def __init__(self):
 
   self.url = 'https://bbs-api.mihoyo.com/post/wapi/getForumPostList?forum_id=49'
   self.headers = {
   'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)'
                          ' Chrome/92.0.4515.107 Safari/537.36'
       }

 

3、分析数据并储存为字典返回

 def parse(self):
        img_dict_data = {}         
 res = requests.get(self.url, headers=self.headers).content.decode('utf-8')  
        res = json.loads(res)          
res = res['data']['list']  
        subject_name = [i['post']['subject'] for i in res]          
cover_url = [i['post']['cover'] for i in res]         
 # print(cover_url, subject_name)
        # 获取对应的标题以及图片地址
        for name, url in zip(subject_name, cover_url):
            # print(name, url)
            img_dict_data[name] = url  
        return img_dict_data

 

4、 保存图片

def save_img(self, data):
        for k, v in data.items():
            img_type = v.split('/')[-1].split('.')[-1]            
 save_path = os.path.dirname(os.path.join(__file__)) + '/img'  # 当前目录下的图片保存路径
            if not os.path.exists(save_path):  
                os.mkdir('img')
            with open(f'img/{k}.{img_type}', 'wb') as f:
                img = requests.get(v, headers=self.headers).content                  f.write(img)  
            print(f'{k}.{img_type} ---图保存成功!')

 

源代码:


"""
爬取地址:https://bbs-api.mihoyo.com/post/wapi/getForumPostList?forum_id=49
getForumPostList:api返回当前最新回复的列表json数据
forum_id=49:COS栏目ID数据为 49
"""
import requests
import json
import os
import threading
 
class WebSpider(object):
    def __init__(self):
          self.url = 'https://bbs-api.mihoyo.com/post/wapi/getForumPostList?forum_id=49'
        self.headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)'
                          ' Chrome/92.0.4515.107 Safari/537.36'
        }
 
    def parse(self):
        img_dict_data = {}         
res = requests.get(self.url, headers=self.headers).content.decode('utf-8')          
res = json.loads(res)         
res = res['data']['list']        
subject_name = [i['post']['subject'] for i in res]         
 cover_url = [i['post']['cover'] for i in res]  # 遍历图片的URL地址
        # print(cover_url, subject_name)
        # 获取对应的标题以及图片地址
        for name, url in zip(subject_name, cover_url):
            # print(name, url)
            img_dict_data[name] = url  # 字典增加数据
 
        return img_dict_data  # 返回数据
 
    # 保存图片
    def save_img(self, data):
        for k, v in data.items():
            img_type = v.split('/')[-1].split('.')[-1]  # 获取图片类型
            save_path = os.path.dirname(os.path.join(__file__)) + '/img'  # 当前目录下的图片保存路径
            if not os.path.exists(save_path):  # img文件夹不存在时则创建新文件夹
                os.mkdir('img')
            with open(f'img/{k}.{img_type}', 'wb') as f:
                img = requests.get(v, headers=self.headers).content  # 发送请求获取图片内容
                f.write(img)  # 写入数据
            print(f'{k}.{img_type} ---图保存成功!')
 
    def main(self):
        data = self.parse()
        self.save_img(data)

原神2.0宅男福利!Python爬虫实战,抓取原神真人cos图片并保存,谁的老婆赶紧抱走的图8 

仅供学习,爬虫使用需谨慎!

希望可以得到各位的一键三连,感谢各位支持!

祝大家学习python顺利!

登录后免费查看全文
立即登录
App下载
技术邻APP
工程师必备
  • 项目客服
  • 培训客服
  • 平台客服

TOP

4
1