原神2.0宅男福利!Python爬蟲(chóng)實(shí)戰(zhàn),抓取原神真人cos圖片并保存,誰(shuí)的老婆趕緊抱走
前言
激動(dòng)的心,顫抖的手,老婆你們誰(shuí)沒(méi)有?
7月21號(hào)《原神》2.0發(fā)布,大家更新了嗎?
如果有正在跟我一樣的自學(xué)的朋友,需要我本篇的代碼或者其他的Python學(xué)習(xí)資料可以加Python新手學(xué)習(xí)交流群:594356095添加助理直接獲取
更新內(nèi)容一覽:
1、稻妻城:稻妻城和六大島嶼相連,目前新的島嶼只是其中三個(gè);
2、家園系統(tǒng)更新:會(huì)新增植物,種植系統(tǒng);
3、新圣遺物:稻妻會(huì)上三種新圣遺物;
4、主要登場(chǎng)人物:八重神子、珊瑚宮星海,早柚、神里綾華、托馬、巴爾、宵宮、五郎。
激動(dòng)的我,在逛米游社的時(shí)候,看著這些cos美女已經(jīng)按捺不住了,連夜的給大家爬了cos同人圖,保存了!有福同享,下面我們一起來(lái)看看這些美女,不對(duì)是代碼操作,正好給大家一個(gè)練手的小項(xiàng)目!
首先,我們來(lái)看看效果圖:
開(kāi)發(fā)環(huán)境:Python3.6
模塊(庫(kù)): requests/json/os/threading
爬取目標(biāo):https://bbs.mihoyo.com/ys/home/49 (米游社.原神)
目的:爬取COS專(zhuān)區(qū)下的圖片,并保存
在COS專(zhuān)區(qū)下的圖片排序以最新回復(fù)欄目排序,因此所爬取的圖片會(huì)隨著最新的時(shí)間而更改。程序運(yùn)行時(shí)自動(dòng)爬取最新20條最新圖片。
1、導(dǎo)入庫(kù)
import requests import json import os import threading
2、初始化URL地址、設(shè)置UA代理(注意:這里的url并不是首頁(yè),而是一個(gè)二級(jí)頁(yè)面)
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、分析數(shù)據(jù)并儲(chǔ)存為字典返回
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)
# 獲取對(duì)應(yīng)的標(biāo)題以及圖片地址
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' # 當(dāng)前目錄下的圖片保存路徑
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返回當(dāng)前最新回復(fù)的列表json數(shù)據(jù)
forum_id=49:COS欄目ID數(shù)據(jù)為 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)
# 獲取對(duì)應(yīng)的標(biāo)題以及圖片地址
for name, url in zip(subject_name, cover_url):
# print(name, url)
img_dict_data[name] = url # 字典增加數(shù)據(jù)
return img_dict_data # 返回?cái)?shù)據(jù)
# 保存圖片
def save_img(self, data):
for k, v in data.items():
img_type = v.split('/')[-1].split('.')[-1] # 獲取圖片類(lèi)型
save_path = os.path.dirname(os.path.join(__file__)) + '/img' # 當(dāng)前目錄下的圖片保存路徑
if not os.path.exists(save_path): # img文件夾不存在時(shí)則創(chuàng)建新文件夾
os.mkdir('img')
with open(f'img/{k}.{img_type}', 'wb') as f:
img = requests.get(v, headers=self.headers).content # 發(fā)送請(qǐng)求獲取圖片內(nèi)容
f.write(img) # 寫(xiě)入數(shù)據(jù)
print(f'{k}.{img_type} ---圖保存成功!')
def main(self):
data = self.parse()
self.save_img(data)
僅供學(xué)習(xí),爬蟲(chóng)使用需謹(jǐn)慎!
希望可以得到各位的一鍵三連,感謝各位支持!
祝大家學(xué)習(xí)python順利!
工程師必備
- 項(xiàng)目客服
- 培訓(xùn)客服
- 平臺(tái)客服
TOP




















