首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

模拟登陆改版后的知乎

今天,想着看看视频,把模拟登陆这一块学习学习,以后弄把梯子,去爬爬FaceBook什么的。就拿知乎练练手吧,可曾想,知乎竟然改版了!!之前的教程书籍对现在的知乎来说,都是扯淡,连页面都找不到了。下面一起谈谈改版后的纸糊的模拟登陆吧。

页面分析抓包

首先,打开页面:https://www.zhihu.com/signup?next=%2F(登录网址都变了…),,(记得把密码输错),点击,,剩下的如图所示,得到。发现几个请求头和正常的不一样(如图所示):

: 应该是js生成的。

: 第一次看感觉很没有头绪,接下来和请求参数一起看就会一目了然了。

、:这两个是验证参数,在网页源码中可以找到。

接下来看一下请求参数:

然后我们结合请求头里

其中就是一种表单提交方式;后面的 就是参数中的 "分割线":

所以,直接不看那一串,参数就相当于:

等11个参数。其中比如账户、密码这些都是固定的,多次请求后,发现、 也是固定的,是变动的,那么这个 是什么东西呢?

确定参数位置

通过更换不同的账号进行抓包,发现 的值是不变的,所以可以说明是直接写到js文件里的,为了验证这一点,找了半小时,总算在[https://static.zhihu.com/heifetz/main.app.da67b2ab04cd46a8caa1.js] 里找到这个:

所以,上面假设得到证实。而且发现,后面那一串和 的值一样。

同样是上面的那个js文件,[https://static.zhihu.com/heifetz/main.app.da67b2ab04cd46a8caa1.js],找到这样一块代码:

所以, 的值就是一些变量进行 得到的值。

直接查找网站源代码,搜索全局,定位了这两个:

后续就是使用正则把他们匹配出来。

代码设计主函数的书写

需要导入的python库有:

设置爬虫通用的请求头:

时间戳的和获取方法:

客户端

定向登录原网站,这里用到 方法

定位验证码网站

确认是否需要验证码,无需验证码直接 登陆,需要则 访问验证码网址获取验证码。改变后的验证码接口改为:[https://www.zhihu.com/api/v3/oauth/captcha?lang=cn].

登陆所需方法:验证码模块。(知乎的验证比较变态,需要post两次。)

第一次,发送数据给验证码来源网站.

第二次,发送数据给真正的登陆接口。

js解密方式,获取 。

直接把这个js文件下载下[https://static.zhihu.com/heifetz/main.app.da67b2ab04cd46a8caa1.js],用 python 执行就可以了。

多次运行测试,发现都没返回图片。

但是不排除有返回的可能性。

今天就到这吧,欢迎留言交流。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180209G007VI00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券