目录
前言
激动的心,颤抖的手,老婆你们谁没有?
(图片来源于米游社)
7月21号《原神》2.0发布,大家更新了吗?
更新内容一览:
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)
(图片来源于米游社,左一神里同人图,右一博主仧郎的cos图)
有这技术 还要啥自行车?福利已经发布,大家可以留下你们的赞再走!!源码获取看简介!!关键词回复“原神”