如果我们想要获取某宝的商品信息或者商品的评论信息的话。可能其中的一条途径就是爬虫了【淘宝商品详情API】。放在以前的话,爬虫还是挺简单的。但是放到现在呢,其实并不容易了。因为现在各个平台的反爬机制都加强了。有的会加强监控的,有的则是会使用一些算法,让你无法通过非浏览器或者app的方式访问到数据。其中淘宝就是,它现在不但需要登录,同时还会设计一些复杂的算法来阻止你使用非合规的手段来访问。
比如下面的这个:
当我们通过浏览器中的F12抓取到了我们搜索的商品的数据的时候,如果我们copy这个json数据的url,然后通过request库进行访问的时候,我们是访问不到。
这是为什么呢,其实这是因为,它设置了sign值,主要就是为了防止爬虫
如果我们想要获取商品的数据,首先第一步就是需要找到这个sign的规律。那么下面我会说如何js逆向去找到这个sign的规律。
第一步:
在搜索框中输入任意想要搜索的内容,比如我这里输入的是“小痰盂”
然后我们需要按F12,进入到开发者模式
可以看到现在是没有数据的,然后我们点击刷信来获取数据
刷新完成以后,我们在搜索栏中,搜sign回车,可以看到详细如下
然后我们找到对应的sign
我们可以在sign:l之前打一个断点,方便我们调试
然后我我们点击下一步,就可以查看到对相应的变量的信息了,这里我们可以看到sign的值,以及t、appKey的值等等。我们这里只关注sign就可以了。
其实我们不难发现,我们的这个sign的只其实是通过l赋值来的,这个l呢其实又是u这个函数的执行之后的结果。那么我们复制u函数中的数据来看一下。其实我是知道这个l的数据是通过u函数进行md5加密获取到的。至于为什么,我会在下面的视频中演示。
然后我们给这个u函数的数据,复制出来,然后在MD5加密网站中加密一下就知道了。我们可以看到,跟浏览器中的sign的值其实是一个。那么我们就验证了确实是通过MD5加密获得的sign的值。