js_cookie破解 | 爬虫遇到521还不会解决吗?

论坛 期权论坛 期权     
Python大数据与SQL优化   2019-7-28 10:13   1810   0
最近看到一篇【猿人学Python】文章【写爬虫,免不了要研究JavaScript设置cookies的问题 】,里面说到了mps“zggaw“的破解返回521的问题,然后自己也去尝试了一把,现在把我的实现过程分享出来,让有需要的人看到。
那我们就直接入正题了,首先我们的目标网址是“http://www.mps.gov.cn/n2253534/n2253535/index.html”,我们直接发起请求试试:


很明显,看到返回521,返回状态码521是什么意思呢?
5xx(服务器错误)
这些状态代码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。
这时候我们打开Chrome的开发者工具,到Network模块,一定把Preserve log 打上勾不然看不到521那个红色的失败链接,Preserve log的作用是保留请求日志。跳转页面的时候勾选上,可以看到跳转前的请求。


然后点开那个红色的index.html,可以看到它status_code状态码为521,下面set cookie 设置了cookie值,切换到Response发现没有内容,为空。


这时候可以尝试两种方法继续走下去:
  • 第一种就是尝试用火狐浏览器重复上面操作,查看Response响应栏下是否有内容


  • 第二种就是直接尝试r.text,看是否有内容返回


可以看到,上面两种方法都能得到一串js代码,给了你走下去的可能,还有你们也可以通过抓包工具来获得这些内容。
得到了一串js代码,我们应该怎么办了?首先,这一串看着就不舒服,我们先把它格式化了再看,介绍一个js代码美化网站“https://beautifier.io/”,当然还有很多网站可以美化js代码,自行百度即可。那么接下来我们把代码拷贝到这个网站下进行查看。


选取我们需要的部分< script> < /script>中间的那一部分,并做修改复制到Chrome开发者工具的Console模块进行调试,把eval换成console.log(下面代码已经修改),并拷贝到Console之后enter即可。
    var x = "substr@@@@parseInt@@reverse@function@nvS@@0xEDB88320@55@14@@36@new@@@@Path@_p@9@catch@g@a@@@q5k@@O@return@@Wed@onreadystatechange@@String@@GMT@https@Jul@window@f@@3@@@@rOm9XFMtA3QKV7nYsPGT4lifyWwkq5vcjH2IdxUoCbhERLaz81DNB6@chars@@@join@firstChild@DOMContentLoaded@split@@Array@1@JgSe0upZ@var@1500@for@setTimeout@@@@10@toString@href@pathname@@__jsl_clearance@document@cookie@8@captcha@div@Expires@t@@@4@@12@hantom@false@k@v@19@@fromCharCode@eval@@while@length@innerHTML@location@@toLowerCase@d@charCodeAt@RegExp@1562764375@@else@0xFF@0@@@if@attachEvent@createElement@2@e@addEventListener@challenge@charAt@replace@D@435@@@@try@@match@search@".replace(/@*$/, "").split("@"),        y = "2i 2e=8(){30('4d.36=4d.37+4d.61.5d(/[\\?|&]3d-5b/,\\'\\')',2j);3a.3b='39=4j.5f|52|'+(8(){2i h=[8(2e){1a 2e},8(h){1a h},8(2e){1a 48('1f.47('+2e+')')}],1b=[(-~!/!/-~!/!/+[[]][52]),[((+!-[])
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP