浅谈淘宝客网站api缓存优化设计
这几年淘宝客风行草根江湖,淘宝客程序也非常多,有免费的,也有收费的。做淘宝客的挣到钱的少,卖程序的挣翻了。 原因不外乎80%以上的淘宝客网站都是用api建立的,内容同质化严重,以及经常性获取不到数据,造成不同页面内容重复严重,降低网站权重。
网站之间内容同质化问题这个可以通过调用api时多增加一些自定义的特殊参数来解决,比如大家可以设置分类列表默认只调用佣金比例为万分之231到万分之5000,api里面是按照总数一万来算佣金比例的,最小150,最多5000,这样子您的分类列表页面就跟别人不一样了,即便程序大体一样,获得的数据也不一样。列表数据不一样,最终商品内容页的数据也就不一样了。
获取淘宝客api数据时应该注意的问题:
一般一个页面调用一个api就行了,最多2,3个,如果更多的话,一分钟调用的次数很容易就超了,然后taobao后台就会屏蔽你这个app_key的调用大概1分钟,这段时间你的网站如果不用缓存的话就都是空白了。解决方法是减少单页面api调用频率,同时增加api缓存以及设置获取不到数据时自动调用老数据以避免页面空白或者错误,还有设置当调用不到数据时不保存缓存,否则缓存就是空的,会造成在缓存时间内即便api调用到数据,页面也是空白或者错误。
现在网络上充斥着各种带缓存的淘宝客api程序,大部分基于php版本的taoapi作为框架来写的。taoapi是个好程序,通过文本来缓存api数据,对于小型网站非常适用,甚至可以不用数据库就可以建站,对于小型虚拟主机适应性非常好。但是对于稍微大点的网站,此种方法的弊端就开始显露了。
一、稍微大点的api网站易做图特别是baidu易做图的爬行频率非常高,一天可达几万设置更多,每天写入几万个文本文件到空间或者vps或者服务器里面,时间一长不到一个月估计你的vps就挂了,不挂也会非常慢,空间是绝对挂,服务器凑合支撑,不过你等着做好更换服务器硬盘的准备。
二、缓存里面有很多空内容,即调不到api数据时也写入缓存了,这个taoapi是没做判断的,造成很多页面如果当时调用不到数据,然后在缓存有效期内页面都是空白或者错误,用户体验极差,seo就更别说了。
三、接上面第二点,当第一次调用到有用的数据的时候,然后过了有效期,这时候突然由于各种因素,调用不到数据了,这时候taoapi会直接用空白的数据覆盖有用的数据,于是循环第二点,页面本来是有数据的,也没了。
四、淘宝客api缓存终极解决方法:
A、用入库来代替代替文本缓存,可以入各种常用数据库,mysql,mssql等
B、入库时的主键就用文本缓存的md5文件名,对taoapi保存缓存的地方稍微做下二次开发即可
C、入库时的内容就用文本缓存的内容,即序列化的api数据结果数组
D、对不同调用方法设置不同的表,由于淘宝客的调用方法都是用英文的点来分割的,而mysql是不支持表名称里面还有英文点的,可以用str_replace把英文点替换为英文下划线。
E、如果数据量更大,大家可以考虑在用调用方法来分表的基础上增加一个md5文件名的第一位来二次分表,由于md5值只有0123456789abcdef这16个字符,这样子调用方法的表又可以分为16个,如果更多,则可以用md5的前两位来二次分表或者分不同数据库,设置不同服务器来保存。
笔者的淘宝女装导购网 http://www.taobao-daogou.org 用这种方法后页面基本上没有出现过任何空白或者错误,baidu收录量也达到了10万以上。
如果大家有不懂的地方,可以给我mail,我的邮箱: angelboy1129@qq.com,欢迎同行来邮。
完全原创,转摘请注明出处,谢谢大家。
补充:web前端 , HTML/CSS ,