python模拟登陆知乎(最新版)

栏目: Python · 发布时间: 8年前

内容简介:python模拟登陆知乎(最新版)

为啥要写这一篇文章呢?

(主要是qq群内有人在模拟登陆知乎,一直不成功)然后我抓包看了下,发现知乎登陆页已经改版了,而且难度大大提高了。

开始抓包

首先内,还是打开知乎首页,然后输入账号密码,登陆(记得输错密码)

这样我们就可以看到请求头了(请求头如下)

python模拟登陆知乎(最新版)

我们发现有这几个请求头和正常的不一样(红色框中的)

  1. authorization (感觉应该是js生成的,后面再看
  2. Content-Type (后面多了boundary=xxx 这种,那这种是啥意思呢,后面和请求参数一起看
  3. cookie :这个要注意,登陆前cookie就不为空,说明之前肯定有set-cookie的操作
  4. x-udid,x-sxrftoken 这两个都是验证参数,估计都在网页源代码能找到

再看一下请求参数

python模拟登陆知乎(最新版)

可以看到参数是以payload的形式出现的

第一次看到这种的人估计会一脸懵逼

这个要结合请求中的

Content-Type:

multipart/form-data; boundary=----WebKitFormBoundary2KNsyxgtG28t93VF

来一起看

multipart/form-data 是一种表单提交的方式,后面的boundary=xxx 是表单分割的方式,那到底啥意思呢?看一个简单的小列子你就能明白啦

python模拟登陆知乎(最新版)

------WebKitFormBoundary2KNsyxgtG28t93VF 是分割不同参数的,所以可以直接不看他(这个是由上面的Content-Type后面的boundary决定的,可以随便修改)

那把分割线去掉后,上面的就相当于 client_id=c3cef7c66a1843f8b3a9e6a1e3160e20 ,

grant_type=password .

那么这个payload就很好理解了.

我们来看一下,一共有哪些参数

python模拟登陆知乎(最新版)

参数还挺多的,可以看到很多参数都是固定的,如账号,密码,时间戳,等等

变动的有两个 client_id,signature

开始找参数

authorization

我们在chrome内,直接按ctrl+shift+f(全局搜索,搜索js,css这些),可以看到已经搜索到了,并且是直接写在js里面的,然后重新随便换个账号再抓一次包,发现authorization 的值还是固定的,所以说明authorization 是直接写在js里面的,不是动态修改的(那么authorization 的值我们就已经找到了)

python模拟登陆知乎(最新版)
python模拟登陆知乎(最新版)

cookie

在登陆之前,就发现cookie的值不为空,说明肯定打开网页后就有set-cookie的操作了,我们想验证的话,先打开一个无痕浏览器(主要是为了把之前的cookie全部清空,避免干扰),然后打开zhihu.com,我们发现他有几次set-cookie的动作

python模拟登陆知乎(最新版)
python模拟登陆知乎(最新版)
python模拟登陆知乎(最新版)

那我们想要模拟的话,很简单的方法是直接使用requests.session

x-udid,x-sxrftoken :

一般这种验证参数都会在网页源代码里面,所以直接查看网页源代码

可以看到已经找到了,后续就是如何把这个找出来而已,可以使用正则,或者xpath定位到

python模拟登陆知乎(最新版)

client_id :

你会发现client_id与上面的authorization 一模一样

signature :

还是使用ctrl+shift+f 全局搜索

发现找到了,但是参数是js动态生成的...

python模拟登陆知乎(最新版)

主要是找到如何加密的,然后使用 Python 模拟出来

第一步:下载这个js,格式化(让代码好看一些)

第二步:使用fiddle替换掉原来的js,使用刚刚格式化的js

第三步:慢慢调试。。。直到找到如何生成的...

大概步骤是这样

但是假如你js像我一样很渣的话,你可以直接找到这段加密的js,然后Python执行这段js就可以了。。。

上面呢,我们把该找的参数都找到了,接着只要模拟发送就可以了

代码请关注微信公众号【python爬虫分享】,发送“知乎登陆代码”可见~~~


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Beginning iPhone and iPad Web Apps

Beginning iPhone and iPad Web Apps

Chris Apers、Daniel Paterson / Apress / 2010-12-15 / USD 39.99

It seems that everyone and her sister has developed an iPhone App—everyone except you, the hard-working web professional. And now with the introduction of the iPad, you may even feel farther behind. B......一起来看看 《Beginning iPhone and iPad Web Apps》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具