爬虫怎么获得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代码撸下来,他怎么生成,你就怎么生成;