今天感叹可以改完八阿哥早点下班,在吃饭的时候,就想着自己也写了一段时间了,看看百度这个强大的引擎能不能搜到我的博客文章。
1、发现文章被爬走了
吃饭的时候用手机搜的,感觉还挺开心,我还给朋友炫耀,你看,百度搜到的第一篇就是我的文章,而且还并非用我文章的标题搜索的,搜的是 2023年前端趋势。
后来打开电脑在思考,今天写点什么呢,于是怀着异常嗨皮的心情,用PC电脑打开百度搜索了一下,第一眼挺开心,但后来就不开心了,这明显不是我每天参与的社区CSDN啊,打开进去一看,文字还是那些熟悉的文章,截图还是那些熟悉的截图,但去了别人网上了,而且貌似阅读量比我的还高。
于是我打开了客服,问问有没有办法,毕竟深夜码字不易,大家写博客的很多和我应该有同样的心情,刚开始没有粉丝,没有阅读量很发愁,于是拼命的写,写着写着把自己那点干货写完了,发现还是没有效果。但是排名,阅读量还是上不去,你就说熬了一夜又一夜,是不是很沮丧,曾经多少次都想放弃。
2、一点思考
其实现在技术挺强大的,网络充斥着各种各样的烟雾弹,让人防不胜防,你想好好写一篇博客吧,也能被爬走,你说你如果说明了转载自哪里哪里,我也觉得开心一些,毕竟自己的认知被别人所接受了,然后希望可以拿到更远处,散播给更多需要帮助的人。但这全然不是啊。
之间我们探讨过一个问题,你的职业未来发展方向在哪里?
比如前端,java,越来越成熟,比如vue react,之前颠覆了jquery ,angular ,现在慢慢变成了最熟人所用的前端技术栈,那么未来想要再次颠覆可能就很难了。
现在我们的网站都有自己的技术团队,那么你做的东西,可能技术点还是次要,数据才是最重要的。但对于现在越来越成熟的爬虫技术,我们是否能形成自己的反爬虫技术呢?
3、对于前端开发,我们可以反爬吗?
这个大数据时代,如果你想做一家网站,或者就是做一个知识网站,怎么可能花钱顾那么多人去写呢,所以phython一把,丰衣足食。
而现在phython工程师那么值钱,肯定是有大量的反爬技术的,也就是说这些爬手工程师其实也在不断精进自己的技术。他们也得背面试题,也得不断的游走面试。
爬虫首先爬的还是一些比较重要有含金量的东西,否则网络上海量的数据都爬过去,相比他们就算拥有10个阿里云也承受不住。他们可能使用的某些热门的链接,热门的关键词,先通过现有的搜索引擎进行搜索。
headers
搜索到链接以后,遍历进行url访问,type以HTML的形式获取HTML文档内容,然后进行内容存库,这样就在他们的服务器形成了一篇文章。
所以我们在开发一个网页或者一个接口的时候,请求到服务端应该时候带有自己团队设定的headers请求头的,比如origin的设置,当服务端监测到origin不在白名单,是无法正常返回数据的。
其实headers的内容,一旦爬手发现规律后,也是可以仿造的,但这也给爬手们增加了一定的难度
JS加密
比如base64 MD5 hash DES等手段,我们与服务端传输过程中的数据是加密过的,而爬虫爬过去的数据很明显是杂乱的,没法使用的。
我们都知道前端加密其实也并不太可靠,他需要与服务端形成一定的加密解密共识。而且前端目前还是必须要加载JS CSS文件进行页面渲染的,所以这种手段其实可以一定程度的抵抗爬重技术。
前端验证码
验证码都见过哪几种形式呢?4位扭曲的数字图片?还是需要滑动对应的图形,亦或是图片上显示着 X + Y = ? 然后让口算,还是12306上8张图片,让你选择哪杯是茅台?这些都无形中加大了作弊的难度,因为服务端必须要求有一个验证码的值,所以人都不知道哪杯是茅台,爬虫能知道?
人为八阿哥(bug)
做为资深程序员,谁每天还不写俩八阿哥,要不测试怎么吃饭,怎么会有那么多线上问题。而一旦这个页面被爬走,你的bug将不再只是你个人的bug,你的bug将赋能与他人,你的bug也会慢慢成长,万一能把它们的系统搞崩溃呢