python案例1-爬取优美桌面壁纸
效果
代码
import os
import requests
# 壁纸
class Biz(object):
def __init__(self):
self.save_folder = "E:/wallpic2/"
self.totalPages = 0
self.page = 0
self.url = "https://infinity-api.infinitynewtab.com/get-wallpaper?page=%d"
def get_json(self):
json = requests.get(self.url % self.page).json()
self.totalPages = json["totalPages"]
print("拉取第 %d 页, %d 条数据" % (self.page, len(json["data"])))
return json["data"]
def download_img(self, file_path, url):
file_path = os.path.join(self.save_folder, str(self.page), file_path)
rep = requests.get(url).content
with open(file_path, "wb") as f:
f.write(rep)
print("下载完成,保存到:"+file_path)
def save_url(self, file_mane, url):
with open(os.path.join(self.save_folder,file_mane), "a", encoding="utf-8") as f:
f.write(url + '\n')
def run(self):
while self.page <= self.totalPages:
index = 1
data = self.get_json()
self.make_folder(os.path.join(self.save_folder, str(self.page)))
for i in data:
url = i["src"]["rawSrc"]
file_path = i["_id"]+"."+url.split(".")[-1]
# 保存地址
self.save_url("url.txt", url)
# 下载图片
self.download_img(file_path, url)
print("开始下载第 %s 页,第 %d 图:%s" % (self.page, index, url))
index += 1
self.page += 1
def make_folder(self, path=None):
if path is None:
path = self.save_folder
if not os.path.exists(path):
os.makedirs(path)
if __name__ == '__main__':
biz = Biz()
biz.run()