在做网络爬虫的过程中你是否一些在这方面做的很好的网站,你向知道他是通过哪些相关的操作做出这么好的网站,以下就是文章的相关内容的具体介绍,希望你浏览完下面的内容会有所收获。Python模拟网页的javascript加密验证处理

在做网络爬虫中很多人都会遇到,做得比较好的一些企业级网站,对于登陆或者其他操作都会对用户的输入做一些加密处理后再post到服务器上去,而加密这部分几乎都是通过JavaScript来完成的,所以要做爬虫,需要模拟 这些加密的处理。

我比较喜欢Python来做爬虫,urllib/urllib2库用起来真的是很方便,所以很多时候遇到需要在python中来模拟网站的JavaScript加密过程。暂时总结起来有两种方法:

***种是改写JavaScript的代码。这没什么好说的,不过只适用于比较小而且不复杂的JavaScript代码片段。比如人人网上发站内信的页面有这样的一个隐藏post数据:

在页面上biz的值为0,但是post的时候就会变成类似于941_683291223928232的字串,仔细看一下页面的源代码,就会发现这段验证的加密字串是通过一段JavaScript的代码生成的:这其实类似一段小型的验证加密,Python模拟网页的javascript加密验证处理 ,它先随机生产一段字

^&+*L/~’;varuCHKAU=0;var rTIU;varwCJS=”;varyAYH=Math.floor(VKMHX.length/2);while

(uCHKAU

charCodeAt(uCHKAU++);varaYDG=VKMHX.

charCodeAt(rTIU%VKMHX.length);aYDG=String.

fromCharCode(aYDG);if(aYDG==’L')aYDG=’<<’

;if(aYDG==’~')wCJS+=~rTIU*(-1);else{wCJS+=Math.

floor(eval(rTIU+aYDG+yAYH));}}varab=941;ab+="_";

ab+=wCJS; document.getElementById("xn_biz").value=ab;

串,复制给随机产生的一个变量名,再随机生成一段运算符,复制给另一个随机生成的变量名,然后对这两个变量进行一系列操作和运算,生成一个类似于941_683291223928232的字串。每次刷新页面这段代码中产生的字串和变量名都是不一样的,但是仔细研究这段代码,算法都是相同的,只要得到字串和运算符串,就可以生成这串验证密钥了。

所以将这段代码简单的改写成python代码,问题得到解决,下面代码中code就是提取出来的上述JavaScript代码中的mREOQQ,operator代表VKMHX,而xn则代表ab的初始值,***得到的xn_biz就是我们最终需要的验证密钥了。以上的文章就是对Python模拟网页的实际应用的相关介绍。

【编辑推荐】

【责任编辑:孙巧华 TEL:(010)68476606】

点赞 0

python判断网页密码加密方式_Python模拟网页中javascript加密与验证的相关处理相关推荐

  1. python判断网页密码加密方式_python实现网页登录时的rsa加密流程

    对某些网站的登录包进行抓包时发现,客户端对用户名进行了加密,然后传给服务器进行校验. 使用chrome调试功能断点调试,发现网站用javascript对用户名做了rsa加密. 为了实现网站的自动登录, ...

  2. python判断用户名密码是否正确_python实现用户名密码校验

    本文实例为大家分享了python实现用户名密码校验的具体代码,供大家参考,具体内容如下 需要实现功能 输入用户名密码 : 认证成功后显示 欢迎信息 : 连续输错三次后 锁定 : readme: 具体请 ...

  3. python判断字符串里的字符_Python检测字符串中是否包含某字符集合中的字符

    目的 检测字符串中是否包含某字符集合中的字符 方法 最简洁的方法如下,清晰,通用,快速,适用于任何序列和容器 def containAny(seq,aset): for c in seq: if c ...

  4. python判断一个月的天数_python日期列表中每个月的天数

    一个简单的计数方法是使用字典.添加新关键点并增加(如果存在):from datetime import datetime times = ['10/Mar/2016 06:39:31','16/Nov ...

  5. python判断输入的是空白_python判断是空的实例分享

    在实际的工作当中,我们难免要与空值打交道,相信不少初学者都会写出下面的代码: if a is None: do something.else: do the other thing. 这样写看起来不错 ...

  6. java使用DES加密方式,实现对数据的加密解密

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java使用DES加密方式,实现对数据的加密解密.加密和解密中需要使用同一个秘钥 第一种方式,使用类型Key作为加密解密的共同秘钥. 测试代码 p ...

  7. python判断某年是否为闰年_python如何判断某年是否是闰年_后端开发

    如何基于Hyperf实现RabbitMQ+WebSocket消息推送_后端开发 基于 Hyperf+ WebSocket +RabbitMQ 实现的一个简单大屏幕的消息推送.利用 WebSocket ...

  8. python语言采用编译执行方式_Python程序的执行过程 解释型语言和编译型语言

    我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在.如果是解释型语言,那么生成的*.pyc文件是什么呢?c应 ...

  9. python判断字符串是纯数字_python判断字符串是否纯数字的方法

    本文实例讲述了python判断字符串是否纯数字的方法.分享给大家供大家参考.具体如下: 判断的代码如下,通过异常判断不能区分前面带正负号的区别,正则表达式可以根据自己需要比较灵活的写,通过isdigi ...

最新文章

  1. 协方差及PCA降维计算
  2. 腾讯帝国的野蛮生长史
  3. c# mysql 文件存储_c# 如何实现保存文件到数据库
  4. EPPlus导出Excel感觉很不错~~~
  5. php cli swoole mysql_[了解实践]Swoole、PHP与MySQL:连接池,swoole扩展实现真正的PHP数据库连接池。...
  6. 小二,先来两桂花豆沙包!
  7. Django学习---原生ajax
  8. java setcontenttype_response.setContentType()在Java过滤器中重置
  9. My SQL-4 函数
  10. [SCM]源码管理 - SVN的备份和还原
  11. 反向链接 反向代理_反向链接列表
  12. 20155226-虚拟机与Linux之初体验
  13. 【转】三层架构的业务逻辑层存在的意义
  14. vue JsBarcode的使用
  15. 下周出发去印度:直觉之旅,发现自己
  16. PS中套索工具的使用
  17. 台式计算机网线插哪里,电脑主机网线插哪里?
  18. 大写的1234567怎么写(存钱的大写的1234567怎么写)
  19. 参加IBM的IBM2007SOA与企业高峰论坛的感受
  20. 弃掉Android 4.4获取系统图片出错之坑,实现 自定义相册库

热门文章

  1. corn java 可配置_定时任务工具——CronUtil
  2. html5 drawimage参数,HTML canvas
  3. 报错,> 1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column
  4. 大数据学习笔记09:MapReduce概述
  5. Python学习笔记:求一组数据的众数
  6. 2017.9.12 人员雇佣 失败总结
  7. 2017.5.18-24 基站选址 失败总结
  8. 【面试篇】Java多线程并发-Java中的CAS机制算法
  9. Coding the Matrix Week 2 The Vector Space作业
  10. 歌德语言证书c1考什么,Goethe-Zertifikat C1 (歌德中级证书C1)考试细则 2010.2.1版.pdf...