当前位置: > python爬虫 >

python破解JS验证网站
栏目分类:python爬虫   发布日期:2019年03月16日 02:11:43   浏览次数:

# python破解js 获取网站信息
                           大家好,我是爱吃苹果的宇文拓,好的废话不多说,直接进入正题  首先查看我们的目标网站

  
 
但是如果直接打开这个(最成都)网站  
我们会发现有浏览器的Cookie检查


不管怎么样,先打开调式工具抓包看看  
首先我们清楚下浏览器Cookie,让网页重新进入这个页面  

--- 
清楚浏览器cookie,终极办法是ctrl+shift+delete,可清除浏览器的所有cookie
也可以点击浏览器地址栏清除Cookie  



还可以点击开发者工具下的网址,点击鼠标右键 clear browser cookies  



---
然后我们重新打开网址,在浏览器安全检查下 按下ctrl + u 打开网页源代码,同时按下F12,打开开发者工具  
可以查找到一条可疑的链接  




可以清楚的get这条链接的参数,  



这个时候,我们去源代码中查看,就能找到2个参数 jschl_vc,和pass  
仔细查看,可以发现第三个参数是通过js生成  




这段js代码也简单相信大家都能看懂,如果我们想要获取到jschl_answer的值,那么必须获取到a.value,而a.value又是由上面的YnLwsbS.REJ通过一系列操作再加上t.length解出来  
这种(+((!+[]+!)有个名字叫 [jother](https://www.baidu.com/s?ie=UTF-8&wd=jother "jother")   
我们看不懂没关系,复制这串代码到控制台看一下  




再与刚才浏览器抓到的网页参数做对比,发现可以解析出我们想要的结果,接下来我们就开始撸代码:  




首先注册一个session请求原始链接(因为每次请求返回的网页内容都会不一样),然后将返回的网页源码交给get_jschl_answer函数处理,得到jschl_answer值  


那么在网页源代码中,  



我们肯定是需要执行js代码的,这里呢,我用的是execjs,直接pip install pyexecjs就可以了  
先把我们想要执行的js代码使用正则提取出来,使用execjs.eval()执行js脚本  




result是一个字典类型,直接取出其中的key,获取第一步计算到的值  
然后在进行一系列的计算




对接下来的计算进行提取全部,在用js计算值就ok  
将第一步计算到的值,进行+=,或者*=或者-=的操作,每次都不一样,所以把符号提取出来  再将前面的值进行操作

```
result_value = eval("%s %s%s" % (result_value, arithmetic, execjs.eval(js)))
```  


又因为参数t计算的值是固定的,都是"www.chengtu.com" ,所以t.length=15,最后将计算出来的值取后面10位小数,再加上15就得到了最终结果  

最后构造参数  



**构造参数重新请求时,需要time.sleep()几秒才可登陆**

登陆成功!  


相关热词:

相关内容
热门关键词
     
python教程 python爬虫 python人工智能 Python+大数据 python问答