python入门书籍

python入门书籍(爬虫方面)
可以选以下几本书(个人看法):

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。
网页的基本知识:
基本的HTML语言知识/理解网站的发包和收包的概念/js知识,静态网页和动态网页
3.学爬虫,需要理论与实践相结合,Python生态中的爬虫库多如牛毛.在学习这些库的同时,需要去系统的学习爬虫的相关原理,理论知识,才能更好的了解.
Python入门:《A Byte of Python》
数据库入门:《MySQL必知必会》
HTTP入门:《图解HTTP》
Linux入门:《快乐的 Linux 命令行》
正则入门:《精通正则表达式 》

 

关于个人服务器的选择问题

想入一台基础的服务器来部署项目和搭建个人博客,请问各位大佬。阿里云,腾讯云,华为云怎么选?之前用过一段时间的阿里云,感觉还不错。

Steps 252 天前
腾讯云。。24 块 轻量 很香!
wangqh333 2
wangqh333 252 天前
@Steps 有这么便宜的?麻烦上个链接,谢谢!
VsevenMagic 3
VsevenMagic 252 天前 via iPhone
我是上的国外 aws 的云
opengps 4
opengps 252 天前
不用挑选,个人用途多折腾下,那个便宜用那个行了,除了价格,你现在还没必要去在意别的,三家的首购特价都用上一次,你就明白你要用哪个了。私聊我可以了解羊毛细节
txydls 5
txydls 252 天前
24 元轻量的,建议上 79 元 1 年 279 元 3 年的 1 核 2G1M 云服务器不香嘛~
s4nd 6
s4nd 252 天前
@txydls 79 一年的在哪里老哥
txydls 7
txydls 252 天前
@s4nd 加我 v:MTg4OTk3NzgxMDU=
txydls 8
txydls 252 天前
@s4nd 官网原价是 99 的呢 基本上找代理商优惠就是这个价了
q428202849 9
q428202849 252 天前
都是大厂不会有什么问题,换着薅
Steps 10
Steps 252 天前
@wangqh333 #2 https://buy.cloud.tencent.com/lighthouse

aliyun75 251 天前
阿里云学生及了解一下,1 核 2g 没有性能限制,一年 94,我这里还能提供阿里云产品优惠,有需要联系我 VX:一三一零一二三四五三九
zhenjiangidc 12
zhenjiangidc 217 天前
如果机器 有服务器的话,托管还是比较好的,, 或者 你可以试试,,学生机 ? 套路云?

csgo 自建服务器要什么配置?

*近各家云都在打折,打算再搞个用来搭 csgo 私服,没搞过,不知道要什么配置。特请教下搞过的大佬

crokily 1
crokily 140 天前
有没有守望先锋的私服?
MeteorCat 2
MeteorCat 140 天前 via Android
别把防火墙关闭手动查端口放行,单核 2G 内存我记得可以开个小房间了,不过我搭的是杀戮间 2
zzNaLOGIC 3
zzNaLOGIC 140 天前
@crokily 不玩守望了所以没打算搞,哈哈

@MeteorCat 主要担心延迟,没搞过不知道 1/2 撑不撑得住
ioriwong 4
ioriwong 140 天前 via iPhone
搭好了记得告诉我,我想玩哈哈
ReddW 5
ReddW 140 天前 via Android
内网搭过一个,9100f 可以,i5 7500 可以,破 i5 4460 ping 不稳,win10 搭的,linux 没试,你参考一下吧。带宽不用很大,感觉上 2m 足够用了
zzNaLOGIC 6
zzNaLOGIC 140 天前 via Android
@ReddW 感谢
cxbeat 7
cxbeat 139 天前 via Android
@crokily csgo 有私服是因为 v 社比较开放给了服务端,客户端也可以直接连接 ip 。守望先锋应该没有这种依赖社区的体系吧
ahmatjan 8
ahmatjan 123 天前
一核 2G5m 带宽即可满足满十游戏,主要是 CPU 性能需求较高,不然 sv 爆炸就很卡,我目前搭了四个,可以来玩儿

云管理服务AWS Organizations正式在AWS中国区域上线

近期, AWS中国(宁夏)区域(由西云数据运营)和AWS中国(北京)区域(由光环新网运营)正式上线了云管理服务AWS Organizations。

作为一种管理服务,AWS Organizations可集中控制和管理多个AWS账户,无论是初创公司还是大型企业均可以使用,而不需要额外付费。

随着企业或机构在 AWS 上的工作负载不断增加,他们需要更多的管理手段。通过使用AWS Organizations,可以集中管理账单,控制访问权限,统一管理合规性和安全性,并在各个 AWS 账户间共享资源。

使用AWS Organizations可以带来以下好处:

集中化。通过AWS Organizations及相关服务,企业可以安全地批量管理用户身份、云资源和使用权限。具体来说,客户可以创建帐户组,将策略添加到组,确保对帐户应用正确的策略,无需自定义脚本和手动流程,轻松地部署控制防护机制,进行精细的访问控制,为员工、应用程序和设备授予他们需要的 AWS 服务和资源访问权限。
自动化。使用AWS Organizations,企业可以自动创建和管理 AWS 帐户,简化 IT 操作。例如,可以自动创建新账户,实现工作负载或应用隔离,让这些账户中的实体只访问必要的AWS服务。
灵活性。通过AWS Organizations及相关服务,客户能够委派管理任务,辅之以一些自动化功能,轻松管理多账户的大型 AWS 环境。借助 AWS Organizations,客户可以保持资源管理规则的一致性,从而提高安全性,保持合规性。AWS Organizations 有助于在公司内多个帐户之间配置 AWS 服务、分享资源。
整合。使用 AWS Organizations,可以整合账单,为所有 AWS 账户设置同一种付费方式,并且方便综合查看各个账户产生的费用,还可以汇总使用量,以获得AWS的批量折扣,从而节省成本。
自 1999 年成立以来,WirelessCar一直致力于引领汽车行业驶向数字化社会。通过数字服务为汽车互联赋能并提供技术支持,在汽车行业和电信技术领域之间搭建起桥梁,创建一站式的汽车移动电子服务平台。

WirelessCar 高级项目经理 Eric Sun表示,“WirelessCar 在全球一直使用AWS Organizations 来帮助集中管理账单,控制访问权限,管理合规性和安全性,并在各个 AWS 账户间共享资源。通过使用这一服务,我们有效降低了账户运维管理的时间,节省了人力成本,有效提高了IT运维效率,并让我们可以专注在业务开发和创新上。非常高兴AWS Organizations 服务在中国区域落地,相信这将对我们提高日常管理效率带来*大的帮助。”

埃森哲和AWS有持续而深入的合作,为多个客户提供上云和云上相关方案的咨询、迁移和实施服务。埃森哲云计算业务总监王赟超说:“AWS Organizations服务在中国区域上线,对我们为客户设计实施云上自动化的整合账单、云上多账号管理方面提供强有力的帮助。尤其在 AWS Landing Zone解决方案中,自顶向下设计账号结构并实现层级管控,为实现整个组织的安全合规控制节省了时间。”
————————————————

python中的&&及||

python中的&&及||

%title插图%num

首先说明一下,在python中是没有&&及||这两个运算符的,取而代之的是英文and和or。其他运算符没有变动。

接着重点要说明的是python中的a.any(),我之所以会涉及到这个函数,是因为我在设计某个分段数值函数时由于不细心犯的错误引起的。a.any(),根据官方解释:

  Test whether any elements of an array evaluate to True along an axis.

即针对的是一个list,判断list中的某个元素是否为真,此时只要有一个元素为真,list元素全部输出。下面一个例子更直观的做了解释:

23
#!/usr/bin/python
#coding=utf8

importnumpy as np

deff(data):
forval indata:
ifval <=0.6:
r1=val*1
print”this is <= 0.6 numbers”, r1
ifval > 4:
r1=val*1
print”this is > 4 numbers “, r1

defmain():
data=np.arange(0.1,5.1,0.5)
ifnp.any(data > 0.3)andnp.any(data <=1):
r1=data *1
printr1
f(data)

if__name__==’__main__’:
main()
对应的输出是:
?
1
2
3
4
5
[0.1 0.6  1.1  1.6  2.1  2.6  3.1  3.6  4.1  4.6]
thisis<=0.6 numbers 0.1
thisis<=0.6 numbers 0.6
thisis> 4numbers  4.1
thisis> 4numbers  4.6
在a.any()中,只要满足条件,整个list就是true的。而我在分段函数计算时,恰恰使用到了a.any()来判断list的范围,在后面的计算中,其实是整个list同时运算然后赋值了,也就将分段函数结果简化成了某一段的所有值。正确的计算分段函数有两中策略,要么像上面的函数f(),要么将list分段带入运算。
这个问题我纠结了一个晚上,*后才发现是a.any()的问题。*开始使用的时候,其真正的用法没有具体熟悉,同时我也该反省我自己,对python语言掌握的实在太菜了!
路漫漫其修远兮,吾将上下而求索~

Android Studio开发中遇到的问题及解决方法

Android Studio开发中遇到的几个问题及解决方法:

1.创建虚拟机后,运行时出现错误对话框,错误内容如下:
KVM is required to run this AVD.
/dev/kvm is not found.
Enable VT-x in your BIOS security settings, ensure that your Linux distro has working KVM module.

解决方法:
重启电脑,按Enter键,再按F1键进入系统固件设置(BIOS)界面(这是ThinkPad T460p的进入方法,其他机型需查询对应品牌的用户手册),使用左右光标键移动至至“Security”页,用上下光标键移动至“Virtualization”项,按Enter键,再用上下光标键移动至“Intel (R) Virtualization Technology”项,按Enter键,选择“Enabled”选项,按F10键保存退出,重启操作系统,问题解决。

2.Gradle构建出现如下错误信息:
Error:Execution failed for task ‘:app:buildNative’.
> A problem occurred starting process ‘command ‘/home/davidhopper/Android/Sdk/ndk-bundle/ndk-build”
更为详细的错误信息如下:
Executing tasks: [:app:assembleDebug]

Configuration on demand is an incubating feature.
NDK is missing a “platforms” directory.
If you are using NDK, verify the ndk.dir is set to a valid NDK directory.  It is currently set to /home/davidhopper/Android/Sdk/ndk-bundle.
If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning.

Incremental java compilation is an incubating feature.
:app:buildInfoDebugLoader
:app:buildNative FAILED
:app:buildInfoGeneratorDebug

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ‘:app:buildNative’.
> A problem occurred starting process ‘command ‘/home/davidhopper/Android/Sdk/ndk-bundle/ndk-build”

* Try:
Run with –stacktrace option to get the stack trace. Run with –info or –debug option to get more log output.

BUILD FAILED

Total time: 6.369 secs

解决方法:
该错误信息说明在“/home/davidhopper/Android/Sdk/ndk-bundle/”文件夹下找不到“ndk-build”文件,因为Android Studio未自带NDK开发工具,因此会出现此错误。
到“https://developer.android.google.cn/ndk/downloads/index.html”下载Linux 64 位 (x86)版本,我下载的时候,版本号为:android-ndk-r14b-linux-x86_64,下载完毕后将其解压,得到一个“android-ndk-r14b”文件夹,将其内部的所有文件全部移动至“/home/davidhopper/Android/Sdk/ndk-bundle/”文件夹下,重启Android Studio,问题解决。

3.使用Android studio启动模拟器时,状态栏一直停在“waiting for target device to come online”提示界面,无法弹出模拟器界面。

解决方法:
该问题源自SDK自带的库文件版本问题,将本机相关库更新后映射过来即可,具体步骤如下:
a).更新安装库:
$ sudo apt-get install lib64stdc++6:i386
$ sudo apt-get install mesa-utils

b).Android sdk存放目录下的文件夹如:
$ cd ~/Android/Sdk/emulator/lib64

c).备份原有libstdc++目录:
$ mv libstdc++/ libstdc++.bak

d)将本机库链接过来:
$ ln -s /usr/lib64/libstdc++.so.6 libstdc++

e)重启Android Studio,问题解决。

4.模拟器启动后,弹出错误提示对话框,内容如下:
Installation failed with message Failed to finalize session : INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113.
It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing.

WARNING: Uninstalling will remove the application data!

Do you want to uninstall the existing application?

解决方法:
这是由于使用了native libraries,而native libraries不支持当前的cpu的体系结构,可以使用修改配置文件的方法加以解决。
打开工程“app”目录中的“build.gradle”文件,找到如下位置:
android {
compileSdkVersion 23
buildToolsVersion ‘25.0.0’
在下面添加如下语句:
splits {
abi {
enable true
reset()
include ‘x86’, ‘armeabi-v7a’,’x86_64′
universalApk true
}
}
保存,重启模拟器,问题解决。

Python中的*使用

Python中的*使用

Python中的*使用
在为函数传递参数和函数定义时使用参数的时候,时常会看到有和 *和**,下面分别讲解其作用。

调用函数时使用*和 **
假设有函数
def test(a, b, c)

test(*args):* 的作用其实就是把序列 args 中的每个元素,当作位置参数传进去。比如上面这个代码,如果 args 等于 (1,2,3) ,那么这个代码就等价于 test(1, 2, 3) 。

test(**kwargs):** 的作用则是把字典 kwargs 变成关键字参数传递。比如上面这个代码,如果 kwargs 等于 {‘a’:1,’b’:2,’c’:3} ,那这个代码就等价于 test(a=1,b=2,c=3) 。

定义函数参数时使用*和**

def test(*args):
定义函数参数时 * 的含义又要有所不同,在这里 *args 表示把传进来的位置参数都装在元组 args 里面。比如说上面这个函数,调用 test(1, 2, 3) 的话, args 的值就是 (1, 2, 3) 。:

def test(**kwargs):
类似的, ** 就是针对关键字参数和字典的了。 调用 test(a=1,b=2,c=3) 的话, kwargs 的值就是 {‘a’:1,’b’:2,’c’:3} 了。

Android Studio 提示 Failed to initialize editor怎么解决?

一、问题说明
xml 文件提示 Failed to initialize editor,无法看到实时布局的效果。

尝试了重启 AS,clean rebuild 等办法都不行。

二、解决方案
方案 1:
关闭 AS
将项目下的 .idea 文件夹删除
重新打开 AS
这样可以解决只有单个 module 的项目,如果有多个 module 可能只有一个 module 中的文件好使。

方案 2:
File 菜单
Invalidate Caches/Restart

三、问题
Invalidate Caches/Restart 是什么,用来干什么的?
对于首次创建或打开的新项目,IntelliJ IDEA 都会创建项目索引,IntelliJ IDEA 的缓存和索引主要是用来加快文件查询的速度,从而提高各种查找、代码提示等操作的速度,因此索引对 IntelliJ IDEA 的高效性来说,具有至关重要的作用。但是,IntelliJ IDEA 的缓存和索引并不一定总是起到积*的作用,有的时候,反而会因为缓存和索引的损坏,例如项目打不开、个性化设置还原等等。

当我们发现一些文件存在比较奇怪的异常情况时,你可以尝试一下通过该菜单解决。

Android App 软件架构的特征

什么是架构?我*初的理解,架构就是通过降低偶合性,提高安全性和扩展性,达到方便对软件进行维护的一套行之有效的分层思想。在我看来架构*主要的就是降低偶合性和提高扩展性,我们平常对于客户端的修改和重构也基本上是围绕这两个点而进行的。当然,这只是我个人的理解,为了怕自己理解太过片面,又在以下几个权威网站,看了一下他们对架构的解释:

百度百科:软件架构(software architecture),是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件,各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口(计算机科学)来实现。

维基百科:软件架构是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。
某位技术大牛:软件架构就是软件的基本结构。

其实总体说来,软件架构就是软件的基本结构,百度和维基说到抽象描述也基本上是这个道理。

%title插图%num

软件架构特征

一个好的软件架构又基本上具备以下的特征:
维护性:一个好的软件肯定是可以方便维护的,出了问题可以快速排查并修改,不会一改这个问题,又暴出另外的问题。
耦合性:这个是我开发Android过程中体会*多的一个特性,开发过程中有看到一些类,同其它类的耦合性过于强,如果想改一个地方,需要考虑另一个类会不会受到影响,导致自己在做修改的时候总是提心吊胆。还有就是耦合性过强不利于快速定位问题所在,总得来说就是“做人要独立,不要过于依赖”。
扩展性:一个好的架构一定是很方便扩展的,既不要因为扩展而影响到其它,也尽量不要过多从其它地儿复制出代码,如果很多地方都会用到这些代码可以封闭出一个类。

总结

当然,构架的特性还有很多,但基本上都是说大型架构的,在平常Android客户端开发中,*常用、体会*深的还是这几个特性。客户端比较常用的几个架构,比如MVC、MVP也基本是围绕“降低偶合性,提高扩展性和维护性”进行设计开发的。

关于iOS订阅型内购开发

####由于公司项目里面有一个类似购买一个时期的产品,原本使用消耗式内购来做,但是被苹果审核拒*了,苹果建议(要求)使用订阅式内购来做这个,于是就来研究一下

#####1.*步添加内购产品

首先还是添加内购产品,但是这次添加的就不是消耗型项目了,而是添加订阅型项目,添加的订阅型项目是可以分为不同的组,比如组A里面包含订阅一周的产品(10元),包含订阅一月的产品(20元);组B里面包含订阅一周的产品(15元),包含订阅一月的产品(30元);不同组的产品是相互直接没有影响的,可以同时存在多个(比如我购买了A组的产品1,B组的产品1);但是相同组的产品是只能同时存在一个;

%title插图%num
点击创建之后会出现下图

%title插图%num

点击下一步之后会出现是否创建分组,我图片中已经显示创建处理订阅组A,订阅组A,这里就不在截图显示了

#####2.第2步添加沙盒测试帐号

点击+添加沙盒测试帐号,沙盒帐号的作用就是你在iPhone 手机上登录这个测试帐号来测试你的内购项目可以不用真正花钱

%title插图%num

#####3.第3步添加共享密钥

%title插图%num
#####4.第4步编写代码

我是直接使用git上的一个三方库YQInAppPurchaseTool,只是在其基础上稍作改动,只是修改了一下方法

 

#pragma mark 验证购买凭据
/**
* 验证购买凭据
*
* @param ProductID 商品ID
*/
– (void)verifyPruchaseWithID:(NSString *)ProductID
{
// 验证凭据,获取到苹果返回的交易凭据
// appStoreReceiptURL iOS7.0增加的,购买交易完成后,会将凭据存放在该地址
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
// 从沙盒中获取到购买凭据
NSData *receiptData = [NSData dataWithContentsOfURL:receiptURL];
// 发送网络POST请求,对购买凭据进行验证
//In the test environment, use https://sandbox.itunes.apple.com/verifyReceipt
//In the real environment, use https://buy.itunes.apple.com/verifyReceipt
// Create a POST request with the receipt data.
NSURL *url = [NSURL URLWithString:checkURL];

NSLog(@”checkURL:%@”,checkURL);

// 国内访问苹果服务器比较慢,timeoutInterval需要长一点
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:20.0f];

request.HTTPMethod = @”POST”;

// 在网络中传输数据,大多情况下是传输的字符串而不是二进制数据
// 传输的是BASE64编码的字符串
/**
BASE64 常用的编码方案,通常用于数据传输,以及加密算法的基础算法,传输过程中能够保证数据传输的稳定性
BASE64是可以编码和解码的
*/
NSString *encodeStr = [receiptData base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];
NSString *payload = [NSString stringWithFormat:@”{\”receipt-data\” : \”%@\”, \”exclude-old-transactions\” : \”true\”, \”password\” : \”1f0aae19eb7f344a818216af37d3c3f456\”}”, encodeStr];
NSData *payloadData = [payload dataUsingEncoding:NSUTF8StringEncoding];

request.HTTPBody = payloadData;

// 提交验证请求,并获得官方的验证JSON结果
NSData *result = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

// 官方验证结果为空
if (result == nil) {
//NSLog(@”验证失败”);
//验证失败,通知代理
[self.delegate IAPToolCheckFailedWithProductID:ProductID
andInfo:result];
return;
}

NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:result
options:NSJSONReadingAllowFragments error:nil];

//NSLog(@”RecivedVerifyPruchaseDict:%@”, dict);

if (dict != nil) {
// 验证成功,通知代理
// bundle_id&application_version&product_id&transaction_id
[self.delegate IAPToolBoughtProductSuccessedWithProductID:ProductID
andInfo:dict];
}else{
//验证失败,通知代理
[self.delegate IAPToolCheckFailedWithProductID:ProductID
andInfo:result];
}
}

上面代码里面的变量payload里面的password就是第三步生成的共享密钥

#####5.第5步就是数据传送给后台了

在把收据传给苹果验证,验证结束后苹果会把当前项目的开始时间,到期时间都返回给你,当然你可以可以直接把验证放在后台
验证返回的字段大致有一下:
latest_receipt *新凭证
latest_receipt_info *新凭证详情(可能会有多个,因为是不同组的产品,产品id是不同的)
expires_date 到期时间
expires_date_ms 到期时间毫秒
expires_date_pst 到期时间(太平洋的时间)
is_in_intro_offer_period 是否是在试用期
original_purchase_date *初的购买时间
original_purchase_date_ms *初的购买时间毫秒
original_purchase_date_pst *初的购买时间(太平洋的时间)
product_id 产品id
purchase_date *新的购买时间
purchase_date_ms *新的购买时间毫秒
purchase_date_pst *新的购买时间(太平洋的时间)

%title插图%num

以上就是这次订阅内购的实践,过程里面还会遇到很多坑,比如消耗型内购起名字和简介不能出现货币的名称(比如人民币),AppStore 审核的时候链接改为正式链接,其实苹果审核的时候也是需要测试链接,只有当上线了才能使用正式链接,这个地方后台注意一下,如果是指定的错误码是21007(此收据来自测试环境,但已发送到生产环境进行验证。而是将其发送到测试环境。)或者是21008 (此收据来自生产环境,但已发送到测试环境进行验证。而是将其发送到生产环境。)后台更换一下验证路径;漏单处理等其它的内购问题就不在一一说了;

友情链接: SITEMAP | 旋风加速器官网 | 旋风软件中心 | textarea | 黑洞加速器 | jiaohess | 老王加速器 | 烧饼哥加速器 | 小蓝鸟 | tiktok加速器 | 旋风加速度器 | 旋风加速 | quickq加速器 | 飞驰加速器 | 飞鸟加速器 | 狗急加速器 | hammer加速器 | trafficace | 原子加速器 | 葫芦加速器 | 麦旋风 | 油管加速器 | anycastly | INS加速器 | INS加速器免费版 | 免费vqn加速外网 | 旋风加速器 | 快橙加速器 | 啊哈加速器 | 迷雾通 | 优途加速器 | 海外播 | 坚果加速器 | 海外vqn加速 | 蘑菇加速器 | 毛豆加速器 | 接码平台 | 接码S | 西柚加速器 | 快柠檬加速器 | 黑洞加速 | falemon | 快橙加速器 | anycast加速器 | ibaidu | moneytreeblog | 坚果加速器 | 派币加速器 | 飞鸟加速器 | 毛豆APP | PIKPAK | 安卓vqn免费 | 一元机场加速器 | 一元机场 | 老王加速器 | 黑洞加速器 | 白石山 | 小牛加速器 | 黑洞加速 | 迷雾通官网 | 迷雾通 | 迷雾通加速器 | 十大免费加速神器 | 猎豹加速器 | 蚂蚁加速器 | 坚果加速器 | 黑洞加速 | 银河加速器 | 猎豹加速器 | 海鸥加速器 | 芒果加速器 | 小牛加速器 | 极光加速器 | 黑洞加速 | movabletype中文网 | 猎豹加速器官网 | 烧饼哥加速器官网 | 旋风加速器度器 | 哔咔漫画 | PicACG | 雷霆加速