HifJzoc9和80T怎么获取
这篇文章给大家分享的是有关HifJzoc9和80T怎么获取的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
HifJzoc9
和 HM4hUBT0dDOn80T
的获取思路
第一个
直接去看控制台请求,就会找到下面的这个请求,这个请求返回的就是列表内容
但是直接去找 HifJzoc9
是找不到。说明这是被后来加上去的。通过拦截 XMLHttpRequest
,将生成的参数加到请求参数里。而且在这个网站,这个参数的名字也是 js
动态生成。
下图是 cookie
中 80T
的名字的生成地方。看好了就是名字。不要想太多。具体破解还未完成。
所以呢一种是增加 XHR 断点,另一种就是使用下面的函数。这个函数我使用的时候是用谷歌插件的方式。
分享一个钩子函数
var code = function () { var open = window.XMLHttpRequest.prototype.open; window.XMLHttpRequest.prototype.open = function open(method, url, async) { if (url.indexOf("HifJzoc9") > -1) { debugger; } };};var script = document.createElement('script');script.textContent = '(' + code + ')()';(document.head || document.documentElement).appendChild(script);script[xss_clean].removeChild(script);
这个函数可以请求发送之前将该请求拦截。
既然可以拦截到请求,那就意味可以拿到当前环境下生成的加密参数。
如果经常看这个网站的话,你就会注意到,他会每隔几秒就会发起这样的请求
所以我的拦截代码就可以一直使用,一直拦截不让他发起请求。从下图就可以看到,请求并没有发出去。
取消请求
window.XMLHttpRequest.abort();
url
参数取到了,就差 cookie
了。
第二个
直接在控制台打印 cookie
这样打印出来其实是只有 80T
的,并没有 80S.
这是因为 HTTPOnly
的原因。具体的可以去百度查查,现在基本大网站都有这个,也是为了安全
这个可以使用谷歌插件解决,可以看看谷歌文档。
谷歌插件提供了一个方法。当然这个方法需要在背景页中使用。填写 URL后就可以获取他的所有 cookies
。
chrome.cookies.getAll({url: "http://*.cn/"}, function (cookies) {});
80T
也是一直在刷新的,所以只需要一直获取提交到你的爬虫就完成了。
总结
1、拦截 XMLHTTPRequest
请求
2、获取到已经生成加密的参数后的 url
3、取消请求
window.XMLHttpRequest.abort();
4、获取 cookie
5、将获取到 cookie 和 url
发送给爬虫。(这一块都是通过插件的背景页做的。网站有跨域限制,所以最后的发送操作都是在背景页。具体的大家多看看插件,挺简单的)
6、爬虫请求数据。
完整流程
谷歌插件 发送加密后的 url
以及 cookie
到接口,爬虫通过接口获取到值进行数据抓取。很简单。
而且这网站只要你能获取到这两个东西,剩下就好说了,请求多了目前发现就只有个图片验证码。
缺点就是:
如果需要大量抓取的话,就需要很多浏览器。
优点就是:
不用破解 js
还有一种思路就是通过 selenium 、pyppeteer、puppeteer
执行 js
,生成加密参数后,再取消请求。这样就会更快的生成你想要的东西。也是挺爽的。
但是这种的我不知道如何再去取消请求,并且将参数拦截获取出来。
感谢各位的阅读!关于"HifJzoc9和80T怎么获取"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!