打开mblock:
URL: https://ide.makeblock.com/
开F12,切到角色页面:

点一下添加,看到有很多素材:

切到Network页的XHR找接口:

其中sprites.json引起了我的注意,点开看看:

是一个列表套dict的结构
其中一个dict:

{name: "Abby",  // 角色名md5: "afab2d2141e9811bd89e385e9628cb5f.svg",  // 图片urltype: "sprite"
}

看一眼sprites.json的url:
https://res-cn.makeblock.com/mblock/static/sprites/scratch/sprites.json
刷新几次发现url是固定的。
先倒包:

import os
import sys
import globimport requests
from bs4 import BeautifulSoup
try:import simplejson as json
except ModuleNotFoundError:import json

写一个load_json:

def load_json():url = 'https://res-cn.makeblock.com/mblock/static/sprites/makeblock/sprites.json'response = requests.get(url)response.encoding = 'utf-8'result = json.loads(response.text)print('INFO: loaded sprites json-file')return result

在写一个download_image:

def download_image(name, file_name):url = f'https://res-cn.makeblock.com/mblock/static/assets/scratch/{name}'response = requests.get(url)image_format = name.split('.')[-1]file_name = file_name + '.' + image_formatwith open(f'downloads/{file_name}', 'wb') as fp:fp.write(response.content)print(f'INFO: downloaded {file_name}')

串起来:

import os
import sys
import globimport requests
from bs4 import BeautifulSoup
try:import simplejson as json
except ModuleNotFoundError:import jsondef download_image(name, file_name):url = f'https://res-cn.makeblock.com/mblock/static/assets/scratch/{name}'response = requests.get(url)image_format = name.split('.')[-1]file_name = file_name + '.' + image_formatwith open(f'downloads/{file_name}', 'wb') as fp:fp.write(response.content)print(f'INFO: downloaded {file_name}')def load_json():url = 'https://res-cn.makeblock.com/mblock/static/sprites/makeblock/sprites.json'response = requests.get(url)response.encoding = 'utf-8'result = json.loads(response.text)print('INFO: loaded sprites json-file')return resultdef install():if not os.path.exists('downloads'):os.mkdir('downloads')print('INFO: created downloads folder')sprites = load_json()for sprite_info in sprites:name = sprite_info.get('name', 'nullify')md5 = sprite_info.get('md5', None)if md5:download_image(md5, name)def clear():if os.path.exists('downloads'):for fp in glob.glob('downloads/*.*'):os.remove(fp)print(f'INFO: deleted {fp}')else:print('ERROR: not installed mblock-images')def main():if len(sys.argv) != 1:name = sys.argv[1]if name in ('install', 'download'):install()sys.exit(0)elif name in ('clear', 'clean'):clear()sys.exit(0)if __name__ == '__main__':main()

最后运行一下:

python -m install-mblock-images.py download

等待一分钟:

nice!

python爬取mblock的图片素材相关推荐

  1. python爬取贴吧图片_Python爬取贴吧多页图片

    Python爬取贴吧图片都只能爬取第一页的,加了循环也不行,现在可以了. #coding:utf-8 import urllib import urllib2 import re import os ...

  2. Python爬取自然风景图片代码

    Python爬取自然风景图片代码 \qquad 需要用到python的etree库和requests库,需要提前下载安装. from lxml import etree import requests ...

  3. python爬取网站的图片

    python爬取网站的图片 本次爬取图片所需要用到的库:Requests库,BeautifulSoup库,正则表达式,os库. 思路:先爬一张图片,再爬一个网站的图片 先爬一张图片: 首先要得到这张图 ...

  4. python爬取网站源代码+图片

    python爬取网站源代码+图片 需求分析 基础知识 正则表达式 python网络请求 文件读写 实现 基本思路 具体实现 结果 总结 需求分析 大部分有志青年都想建立属于自己的个人网站,从零开始设计 ...

  5. python 爬取5566图库图片

    python 爬取5566图库图片 1 import requests 2 import random 3 import re 4 import time 5 import os 6 from bs4 ...

  6. python爬取动态网页图片

    爬取某知名网站图片(爬取动态网页) python爬取动态网页图片 python爬取动态网页图片 环境: python3.pycharm 库: requests.urllib.json 思路: 1.分析 ...

  7. python爬取明星百度图片并存入本地文件夹

    python爬取明星百度图片并存入本地文件夹 想要一个明星图片的时候,发现图片量过大,一张张保存太累,不太现实 这时候就可以用到爬虫,批量爬取图片 现在又出现一个问题,当发现一个明星爬完后,再爬取下一 ...

  8. Python爬取百度壁纸图片

    Python爬取百度壁纸图片 #! /usr/bin/python -- coding: utf-8 -- @Author : declan @Time : 2020/05/31 16:29 @Fil ...

  9. Python爬取小姐姐图片

    使用Python爬取小姐姐图片 首先上网站链接 唯美女生 爬取图片主要分为一下几步: 1.打开一个你喜欢的小姐姐的网站 E.g xiaojiejie web 2.下载并安装python环境 pytho ...

最新文章

  1. 怎么读取java文件,Java怎么读取文件
  2. linux命令之查看程序动态库依赖-ldd
  3. Linux umask 文件默认权限
  4. Cookie的使用(js-cookie插件)
  5. 【坑】执行Consumer的时候发生java.net.UnknownHostException错误
  6. python开发基本流程_第一阶段:Python开发基础 day06  Python基础语法入门--流程控制(二)...
  7. 宝塔可以修改服务器内存限制吗,宝塔内存使用率很高的解决方法 cpu过高这样做!...
  8. 蚂蚁之江要退地?官方回应:假的
  9. MyCat分布式数据库集群架构工作笔记0002---数据库中间件对比
  10. 处理整个磁盘镜像文件的单个分区
  11. 新浪SAE sae_debug保存日志
  12. 阿里研究院安筱鹏:云计算推动企业迈向高频竞争时代
  13. 卸载Oracle 12c
  14. Android单元测试 - 如何开始?
  15. 高德地图的画图表,加文字,画线,测距
  16. 美国奶酪(芝士) - cheese
  17. 网站SEO实践之 - seo引流怎么选有流量的关键词
  18. 面向对象的三大基本特性,五大基本原则。
  19. Excel常用公式与函数总结(Excel 2010)
  20. Detecting Visual Relationships with Deep Relational Networks(阅读笔记)

热门文章

  1. window.print()打印时设置背景色
  2. 文档管理系统 LogicalDOC
  3. 马尔科夫链与转移矩阵
  4. 一、使用UltraISO制作Ubuntu 系统U盘及安装
  5. 使用Hbuilder X配合uniapp开发5+APP时无法开启真机调试。
  6. 用管理学的观点看个人管理
  7. Python语言_理論與習題
  8. 小米4 第三方re奇兔_【沙发管家】带你了解小米电视的几个使用技巧!|小米电视|沙发管家|机顶盒|智能电视|遥控器...
  9. Java工程师核心能力_java程序员的核心竞争力是什么?
  10. 凤凰教育商学院成立 致力于为教育机构提供运营方案