SDK适用于在Java中调用service.youziku.com中的反爬虫api
①用户用后端程序调用SDK,提交动态内容到有字库的反爬虫服务器
②服务器接收到所提交内容后,根据内容生成反爬虫策略文件
③服务器将所有文件上传至阿里云CDN,并返回@font-face语句和混淆后的内容
④内容显示时,只需要显示混淆后的内容即可,@font-face语句会让内容还原成可阅读状态
SDK的返回值主要内容是@font-face语句,@font-face语句是CSS3中的一个功能模块,是所有浏览器天然支持的CSS语句。它的作用是将一个远程字体文件加载到当前页面,并且定义成一个字体,前端页面能够像使用本地字体一样使用该字体。@font-face语句是实现反爬虫的核心代码。
用户将返回的@font-face与返回的混淆内容一起存放数据库,当需要显示内容时,将混淆内容内容输出到前端,同时,将@font-face语句以<style>标签形式插入到前端代码中,混淆内容通过@font-face的字体即可还原出原始内容。
1)jar包方式引用
1.jdk1.6.0_31及以上
2.依赖:
commons-httpclient-3.0.1
commons-logging-1.0.3
commons-codec-1.2
fastjson-1.2.5
3.sdk下载
2)maven方式(推荐)
<dependency>
<groupId>com.github.youziku</groupId>
<artifactId>youziku.service-plus.sdk</artifactId>
<version>1.0.0</version>
</dependency>
public static final IYouzikuServicePlusClient YouzikuClient = new YouzikuServicePlusClient("xxxxxx");//xxxxxx为用户的apikey
RamSortUnicodeApiOption option = new RamSortUnicodeApiOption();
//处理汉字
option.setRanChinese(true);
//处理字母
option.setRanEnglish(true);
//处理数字
option.setRanNumber(true);
RamUnicodeItemResult fontFaceResult= YouzikuClient
.getFontFace(new RamUnicodeFontApiParam(
"xxx", "有字库,让中文跃上云端!",
"#id-1", false,option));
RamSortUnicodeApiOption option = new RamSortUnicodeApiOption();
//处理汉字
option.setRanChinese(true);
//处理字母
option.setRanEnglish(true);
//处理数字
option.setRanNumber(true);
RamUnicodeItemResult wofffontFaceResult = YouzikuClient
.getWoffFontFace(new RamUnicodeFontApiParam(
"xxx",
"有字库,让中文跃上云端!",
".class-1",false,option));
RamSortUnicodeApiOption option = new RamSortUnicodeApiOption();
//处理汉字
option.setRanChinese(true);
//处理字母
option.setRanEnglish(true);
//处理数字
option.setRanNumber(true);
RamUnicodeItemResult fontFaceResult= YouzikuClient
.getScopeFontFace(new RamUnicodeScopeFontApiParam(
"xxx","有字库,让中文跃上云端!",
".class-2", false,option,"有字库"));
RamSortUnicodeApiOption option = new RamSortUnicodeApiOption();
//处理汉字
option.setRanChinese(true);
//处理字母
option.setRanEnglish(true);
//处理数字
option.setRanNumber(true);
RamUnicodeItemResult wofffontFaceResult = YouzikuClient
.getScopeWoffFontFace(new RamUnicodeScopeFontApiParam(
"xxx","有字库,让中文跃上云端!",
"#id-2",false,option,"有字库"));