在写爬虫之前,一定要先在知乎、简书、CSDN、github这种网站上查查有没有人做过类似的事情。目的并不一定是抄他们的代码,而是看他们是怎么分析的,他们都发现了哪些网站的反爬措施,又是怎么解决的。通过看他们的文章和代码,可以让自己少走很多弯路。我这次写爬虫就是参考了一篇文章和一个代码。
本篇内容是分析百度指数的获取数据的接口,大家感兴趣的话可以实操一下
首先百度指数的首页链接是http://index.baidu.com/,打开之后就可以看到如下界面:
然后我们在关键词里搜索信息,就可以查看百度指数结果了:
然后我们就来分析一下接口了,所谓分析接口就是,找出来这个界面的那些数据,是从哪里弄过来的。想要想搞清楚这个问题,我们要3步走:
现在我们就会看到这么一大堆浏览器向服务器发送的请求。我们需要的,获得搜索次数的请求肯定也藏在其中。那么问题来了,哪个是呢?????
不慌,问题不大,首先呢,我们点击这个"XHR",进行筛选(不要问我为什么按这个,按!就对了)
我们来看哈,现在请求已经被我们一下子筛选的这么这么少了,那我们就只能,一个一个看了
对于每一个请求呢,我们先要点击请求,然后点击右边的"Preview",就可以看到请求的内容了。经过查看。这个请求一看就是我们需要的东西:
你看它长得多好看,有all,有pc,有wise。每个里面有startDate(开始时间的意思,英语不行我就没辙了),endDate和data。除了data长得很奇怪好像其他的都还行。那其实这就很难受了,这个data一看就是经过加密了。那么这个问题严重么?啊,其实还蛮严重的。不过不要紧,我们知道既然服务器把加密后的数据发给我了,那么解密的方法一定在代码里,我们就来猜猜看,哪段代码是用来解密的就可以了。
具体咋办呢?问题来了,解密的英语是什么啊?decrypt!好的,我们猜猜看,百度的程序员会不会把解密的程序命名为了decrypt呢?我们来搜索一下,点击这个小搜索框,输入decrypt再回车就好了。
激动人心的时刻到了,果然搜到了两条记录,点开一看,完美!我们貌似找到了一个解密的代码:
我们看到解密需要t和e,t是我们要解密的内容,就是前面的data,那么e呢?e明显就是解密用的秘钥了,那么e怎么来得???经过分析,它是其它的请求发来的:
这个里面的data,就是我们解密用的秘钥了!但是这个请求有一个uniqid参数,它是哪来的???咦,貌似我们最上面返回数据的请求,有一个uniqid哎!没跑了,就是它!
好的,现在我们来捋一下流程:
这样一来我们爬虫最核心的内容就有了:
首先请求index,拿到密文和uniqid:
然后根据uniqid去拿到解密的秘钥:
最后照着抄解密函数哈哈哈哈
我们来看一下解密的结果:
已经解密成数字了,这样就,大功告成!
以上就是本篇文章【百度指数爬虫|爬虫篇(一)】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/news/3941.html 资讯 企业新闻 行情 企业黄页 同类资讯 首页 网站地图 返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多