看360 看360看360

爬虫怎么获得token. 请求的接口里要传token参数怎么获得?

以下是为大家精心整理的"爬虫怎么获得token. 请求的接口里要传token参数怎么获得?"相关知识及问题的最佳答案:

爬虫怎么获得token. 请求的接口里要传token参数怎么获得?

朋友最近在爬某财经网站(智通财经网-连线全球资本市场)的文章,让我帮忙看看搜索后url的token是如何生成的。解密后,遂发此文,以表总结。

该url是https://www.zhitongcaijing.com/search.html?keyword=智通每日大行研报&token=a4066822eca5b2aa15288013051cb77407ab3680,keyword是搜索内容,但token如何实现的?

使用chrome的用户,可以通过F12打开开发者工具,在Elements里搜索token,可得到以下内容。第一个方框内的是搜索内容,即“智通每日大行研报”,第二个方框内的是postData定义,第三个方框则清晰表明了url的生成,即keyword=智通每日大行研报,type=all,token是由window.utils.tokenCrypto(postData)生成。

以上内容同样可以从source搜索得到

接下来只需求得该函数的写法。我们可以在console中调用此函数,定义postData看返回值,发现和前面token:a4066822eca5b2aa15288013051cb77407ab3680不相同。没关系,因为前个url是不包含type参数的,重新定义postData后,我们可以拿到相同token。

朋友们可以注意下这串token:da39a3ee5e6b4b0d3255bfef95601890afd80709,了解过加密算法的朋友们可能现在已经“哦~”了,不懂得可以google一下。

现在只需求得该函数的写法,不得不说这个函数藏得太深。在Network中搜索token,我们可以在app.js中找到这一行,即tokenCrypto返回R,R必然是个funtion。

继续搜索function R,可以看到内部定义函数e。查阅代码可得,e是根据参数postData生成字符串的,如"keyword=智通每日大行研报","keyword=智通每日大行研报&type=all"。爬虫的小伙伴应该很熟悉这个function的各种写法,接下来只需找到p["a"]是什么了。

继续搜索p = ,得到返回n("036e")

搜索"036e",看到SHA1,hex,以及后面的function Sha1。

谜底揭晓,window.utils.tokenCrypto是对搜索内容进行了一个字符串处理,得到字符串再SHA1就好了。

用python验证下,完美解决。

再看下那串神秘的da39a3ee5e6b4b0d3255bfef95601890afd80709,是不是很熟悉了~


爬虫怎么获得token. 请求的接口里要传token参数怎么获得?

朋友最近在爬某财经网站(智通财经网-连线全球资本市场)的文章,让我帮忙看看搜索后url的token是如何生成的。解密后,遂发此文,以表总结。

该url是https://www.zhitongcaijing.com/search.html?keyword=智通每日大行研报&token=a4066822eca5b2aa15288013051cb77407ab3680,keyword是搜索内容,但token如何实现的?

使用chrome的用户,可以通过F12打开开发者工具,在Elements里搜索token,可得到以下内容。第一个方框内的是搜索内容,即“智通每日大行研报”,第二个方框内的是postData定义,第三个方框则清晰表明了url的生成,即keyword=智通每日大行研报,type=all,token是由window.utils.tokenCrypto(postData)生成。

以上内容同样可以从source搜索得到

接下来只需求得该函数的写法。我们可以在console中调用此函数,定义postData看返回值,发现和前面token:a4066822eca5b2aa15288013051cb77407ab3680不相同。没关系,因为前个url是不包含type参数的,重新定义postData后,我们可以拿到相同token。

朋友们可以注意下这串token:da39a3ee5e6b4b0d3255bfef95601890afd80709,了解过加密算法的朋友们可能现在已经“哦~”了,不懂得可以google一下。

现在只需求得该函数的写法,不得不说这个函数藏得太深。在Network中搜索token,我们可以在app.js中找到这一行,即tokenCrypto返回R,R必然是个funtion。

继续搜索function R,可以看到内部定义函数e。查阅代码可得,e是根据参数postData生成字符串的,如"keyword=智通每日大行研报","keyword=智通每日大行研报&type=all"。爬虫的小伙伴应该很熟悉这个function的各种写法,接下来只需找到p["a"]是什么了。

继续搜索p = ,得到返回n("036e")

搜索"036e",看到SHA1,hex,以及后面的function Sha1。

谜底揭晓,window.utils.tokenCrypto是对搜索内容进行了一个字符串处理,得到字符串再SHA1就好了。

用python验证下,完美解决。

再看下那串神秘的da39a3ee5e6b4b0d3255bfef95601890afd80709,是不是很熟悉了~


爬虫怎么获得token. 请求的接口里要传token参数怎么获得?

泻药。稍等几天,我正准备写个专题。

二分之一:Python从入门到放弃(4)

通过浏览器F12开发者工具分析得来


爬虫怎么获得token. 请求的接口里要传token参数怎么获得?

泻药。稍等几天,我正准备写个专题。

二分之一:Python从入门到放弃(4)

通过浏览器F12开发者工具分析得来


爬虫怎么获得token. 请求的接口里要传token参数怎么获得?

F12调试里面找啊。一般这种做过加密都是js生成的,看看他怎么生成的,拿下来或复现他的逻辑。请求的时候带上就可以了。


爬虫怎么获得token. 请求的接口里要传token参数怎么获得?

F12调试里面找啊。一般这种做过加密都是js生成的,看看他怎么生成的,拿下来或复现他的逻辑。请求的时候带上就可以了。


爬虫怎么获得token. 请求的接口里要传token参数怎么获得?

一般分为几种,有的在网页里面,有的在cookies里面,有的在js算法里面。


爬虫怎么获得token. 请求的接口里要传token参数怎么获得?

一般分为几种,有的在网页里面,有的在cookies里面,有的在js算法里面。


爬虫怎么获得token. 请求的接口里要传token参数怎么获得?

把他js代码撸下来,他怎么生成,你就怎么生成;


爬虫怎么获得token. 请求的接口里要传token参数怎么获得?

把他js代码撸下来,他怎么生成,你就怎么生成;