本发明涉及一种反爬方法,具体涉及一种保护网站资源的反爬方法,属于互联网技术领域。
背景技术:
为保障网站上的数据具有独特性,网站管理员并不希望自己的数据被搜索引擎的网络爬虫抓取,也不希望数据被竞争对手的爬虫抓走用做竞品分析。所以希望能有一种技术,既不影响普通客户对网站的访问,又能避免自己的网站资源被竞争对手大范围的抓走。
当前反爬虫的常用技术有以下几种:
1、检测ip地址的访问频率;
2、检测用户行为是否存在周期性;
3、检测访问请求是否包含合法浏览器头。
这些方法能应对普通的爬虫行为,但均有简单的方法绕过,比如:
1、通过频繁更换ip地址来规避检测ip地址的访问频率的反爬方法;
2、通过在访问行为里面加随机行为进行干扰来规避检测用户行为是否存在周期性的反爬方法;
3、通过伪造浏览器头来规避检测访问请求是否包含合法浏览器头的反爬方法。
因此,研制一种有效弥补现有反爬技术的不足,通过加密的方式,让爬虫的访问效率比人的随机访问效率更低,从而从另一个维度保证了数据的独特性的反爬方法是非常必要的,并且该发明也有重要的应用前景。
技术实现要素:
本发明针对现有技术的弊端,公开了一种通过加密的方式,让爬虫的访问效率比人的随机访问效率更低,从而从另一个维度保证了数据的独特性的反爬方法。
为了实现上述目标,本发明所采用的技术方案是:
一种保护网站资源的反爬方法,包括以下步骤:
s1、用户第一次http请求访问资料时,网站服务器返回一系列资源文件,执行步骤s2;
s2、第二次http请求申请访问资料的token,网站服务器返回加密的token,执行步骤s3;
s3、用户使用所述步骤s1中网站服务器返回的资源文件中包含的代码对所述步骤s2中网站服务器返回的token进行解密和往cookie中设置token,执行步骤s4;
s4、使用解密的token生成发出第三个http请求的代码访问资料,执行步骤s5;
s5、网站服务器对token进行合法性校验,通过后向用户返回访问资料的有效数据。
前述的保护网站资源的反爬方法,所述步骤s1中,网站服务器返回的资源文件中包含的用于解密所述步骤s2中token的代码由javascript编写。
前述的保护网站资源的反爬方法,所述步骤s2中,token在使用一次后失效。
前述的保护网站资源的反爬方法,所述步骤s2中,token的加密方法是,将token和往cookie中设置token的javascript语句全部用ascii码对应的十六进制数表示,然后在这些ascii代码中每隔m个字符加入随机字符,再每隔n个字符加入随机字符。
前述的保护网站资源的反爬方法,加密过程迭代若干次。
前述的保护网站资源的反爬方法,m,n定期更换。
前述的保护网站资源的反爬方法,所述步骤s4中,第三个http请求的代码所使用的加密方法是,代码用ascii码对应的十六进制表示,且每隔h个字符加入随机字符,存储在一个独立的javascript文件。
前述的保护网站资源的反爬方法,javascript文件加入冗余字符。
前述的保护网站资源的反爬方法,javascript文件压缩保存。
与现有技术相比,本发明的有益之处在于:
(1)通过加密的方式,让爬虫的访问效率比人的随机访问效率更低,迫使爬虫放弃抓取行为,从而从另一个维度保证了数据的独特性;
(2)同其他方案结合起来能达到最好的反爬效果。
附图说明
图1是本发明的保护网站资源的反爬方法的流程示意图。
具体实施方式
以下结合附图和具体实施例对本发明作具体的介绍。
参照图1,本发明的保护网站资源的反爬方法,包括以下步骤:
s1、用户第一次http请求访问资料时,网站服务器返回一系列资源文件,执行步骤s2;资源文件中包含一定的冗余数据,造成爬虫难以识别有效的代码在哪里。
s2、第二次http请求申请访问资料的token,网站服务器返回加密的token,执行步骤s3;
s3、用户使用所述步骤s1中网站服务器返回的资源文件中包含的代码对所述步骤s2中网站服务器返回的token进行解密和往cookie中设置token,执行步骤s4;
s4、使用解密的token生成发出第三个http请求的代码访问资料,执行步骤s5;
s5、网站服务器对token进行合法性校验,通过后向用户返回访问资料的有效数据。
作为一种优选的方案,步骤s1中,网站服务器返回的资源文件中包含的用于解密步骤s2中token的代码由javascript编写。
作为一种优选的方案,步骤s2中,token在使用一次后失效,可以避免token被爬虫识别后,反复使用。
作为一种优选的方案,步骤s2中,token的加密方法是,将token和往cookie中设置token的javascript语句全部用ascii码对应的十六进制数表示,然后在这些ascii代码中每隔m个字符加入随机字符,再每隔n个字符加入随机字符。
作为一种更加优选的方案,加密过程迭代若干次。
作为一种更加优选的方案,m,n定期更换,可以让爬虫难以发现规律,进而无从破解。
作为一种优选的方案,步骤s4中,第三个http请求的代码所使用的加密方法是,代码用ascii码对应的十六进制表示,且每隔h个字符加入随机字符,存储在一个独立的javascript文件。
作为一种更加优选的方案,javascript文件加入冗余字符。
作为一种更加优选的方案,javascript文件压缩保存,压缩之后,难以阅读,保护了解密算法不被破解。
综上所述,本发明的保护网站资源的反爬方法,通过加密的方式,让爬虫的访问效率比人的随机访问效率更低,迫使爬虫放弃抓取行为从而从另一个维度保证了数据的独特性,同其他方案结合起来能达到最好的反爬效果。
需要说明的是,以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。