目录

更新日期:2017-09-17


项目背景

Misaka.asia(原Misaka.asia)作为我的一个实验性公共项目已经准备了很长时间,不过因为这个学期的事情比较多。

图片均是从konachan上爬下来的,截至03/08/17晚9:30分总‘收录’图片197390条,并以每天20-50条的速度增加,由于并不是实时添加,所以K站上最新的图片不一定会马上在我的服务器中。因为你懂得的原因,可公共开放的为141977条,这14万条将可以从api中检索到。

开发计划以及完善计划都拖了很久,上线小范围测试(没啥人用)之后,应该能够满足小部分人的需求。

80G的硬盘+2t的国内直连机房,应该能够吃得消。见过有人在15年爬完konachan全站大约43G。


功能简介

Misaka.asia提供公共的免费动漫高清壁纸检索功能。


工作原理

使用Python爬虫从Konachan官方提供的接口中爬取所有的信息,并存储至mysql数据库中。

并由Flask制作Api检索接口从mysql服务器检索数据。

由于Konachan在国内被屏蔽,所以Raw输出下将由本人的机子进行CDN处理,可以直接得到图片。


Web Api

Misaka.asia服务提供两种接口

  • Json输出接口
  • Raw输出接口

提供的检索接口直接需要将参数拼到url上就可以了。

支持的参数及默认参数(-1则表示不进行处理)

limit=1 #输出条目数
page = 1 #第几页
author = -1 #作者
days = 1 #创建日期多少天内
w_max = -1 #最大宽度
w_min = -1 #最小宽度
h_max = -1 #最大高度
h_min = -1 #最小高度
desc = 1 #排序方式
order = 1 #排序依据
tags =  #tag标签

为了防止response太大,所以limit请不要设置太大,建议在100以下。

desc=[‘asc’,‘desc’],所以默认1为desc降序,0为升序

order=[‘score’,‘width’,‘height’,‘created_at’,‘random’],0-4(Json模式下random无效)


Json Output

Json输出接口将返回所检索条目的所有数据,目前收录有效字段:

id #图片于Misaka.asia服务器中的id
kid #图片在konachan的id
author #图片作者名
tags #图片在k站的标签
created_at #unix时间戳,图片的上传时间
creator_id #作者在K站的id(?)
source #图片来源
score #得分
md5
file_size #原图大小
file_url #原图在K站的缓存地址
is_shown_in_index #是否在K站首页显示(?)
preview_url #预览图片(完全不能看的图)
sample_url #样例图片(可以看的图)
jpeg_url #jpeg压缩过后的图片地址
has_children #是否有儿童(!)
width #宽度
height #高度

Example:

https://Misaka.asia/api.json?order=3&limit=10&tags=miku&days=100&h_min=800

检索tag中有miku,高度最小为800的图片,以创建时间降序100天内最新的10张


Raw Output

[17号更新]

1.可以使用size参数限制图片大小,因为发现数据库中有很多的几十M的图片,所以加了这个参数,单位是byte

如果限制最大1M的图片则1024*1024

2.order=4随机接口也支持所有的参数


[31号更新新特性]

可通过kid进行图片获取,如api.jpg?id=243565(单纯把我当成Konachan的CDN了)。


直出模式就是直接输出一张图片,可用于网站的背景什么的,由于浏览器缓存的原因,建议在最后面&上一个随机数。

直出模式会先在服务器创建副本再输出给浏览器。

参数同上 Example0:

范例

https://Misaka.asia/api.jpg?order=3&tags=Morgiana&days=100&h_min=1200

检索tag中有摩爷(我正房),高度最小为1200的图片,以创建时间降序100天内最新的1张

Example1:

范例

https://Misaka.asia/api.jpg?order=4

从14W的数据库中随机检索出一张


FBI Warning

  • 最主要的注意事项:图片的版权归其作者所有,任何未经许可的侵权或商业行为均是违法的
  • 上线有一天发现有人爬我的图,我声明一下!!如果你想要我的数据库,请联系我,我可以直接给你,请不要使用爬虫直接爬图片的行为(虽然我也做过,但是后来改成爬json接口了哇)!爬Json接口的话我倒是不在意。
  • 直出模式均由本人的服务器进行CDN(不想备案,没钱买CDN),所以请不要进行滥用。。。大佬手下留情!
  • 本人对同IP的访问频率做了限制,1ip一秒平均请求1次,突发2次。
  • 有任何问题欢迎留言(真的有人看吗)