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

浏览:2339 收藏:1
前言
激动的心,颤抖的手,老婆你们谁没有?
7月21号《原神》2.0发布,大家更新了吗?
如果有正在跟我一样的自学的朋友,需要我本篇的代码或者其他的Python学习资料可以加Python新手学习交流群:594356095添加助理直接获取
更新内容一览:
1、稻妻城:稻妻城和六大岛屿相连,目前新的岛屿只是其中三个;
2、家园系统更新:会新增植物,种植系统;
3、新圣遗物:稻妻会上三种新圣遗物;
4、主要登场人物:八重神子、珊瑚宫星海,早柚、神里绫华、托马、巴尔、宵宫、五郎。
激动的我,在逛米游社的时候,看着这些cos美女已经按捺不住了,连夜的给大家爬了cos同人图,保存了!有福同享,下面我们一起来看看这些美女,不对是代码操作,正好给大家一个练手的小项目!

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

开发环境:Python3.6
模块(库): requests/json/os/threading
爬取目标:https://bbs.mihoyo.com/ys/home/49 (米游社.原神)
目的:爬取COS专区下的图片,并保存

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

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)
仅供学习,爬虫使用需谨慎!
希望可以得到各位的一键三连,感谢各位支持!
祝大家学习python顺利!

技术邻APP
工程师必备
工程师必备
- 项目客服
- 培训客服
- 平台客服
TOP

4
1