1、模拟登陆主要就是用POST方法给知乎服务器提交用户登陆相关的信息,POST的表头和表单的填写都可以通过抓取一个实际的登陆过程仿照,如下,按F12然后登陆后记录下其中一次浏览器向服务器提交的请求过程
2、需要填写表头,这个可以在谷歌浏览器里面打开F12,然后真实触发一次知乎登陆,把对应的表头模拟下来,如下
<span style="font-size:18px;"><span style="font-size:18px;">self.loginHeaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36','Referer': 'https://www.zhihu.com','Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
}</span></span>
3、由于是登陆,所以需要提交表单,表单信息主要包括账号、密码以及_xsrf,主要_xsrf可以通过登陆跟踪获取
<span style="font-size:18px;"><span style="font-size:18px;">self.post = {'email': "",'password': "" ,'rememberme':"true",'_xsrf': "14a654d344b558f4bf5001ef6595ecd6"
}</span></span>
表单还需要编码一次,如下
<pre name="code" class="python">self.postData = bytes(urllib.parse.urlencode(self.post), 'utf-8')
4、将表头表单填入request消息中,会返回一个信息,代表登陆成功,如下veriCode获取
request = urllib.request.Request(self.siteURL, self.postData, self.loginHeaders)
response = self.opener.open(request)
veriCode= response.read().decode('gbk')

返回下面字符代表登陆成功
{"r":0,
 "msg": "\u767b\u9646\u6210\u529f"
}

遗留问题:
1、知乎登陆多次会要求输验证码,怎么解决?
2、如何保存一次cookie后续不用再登陆?
3、请求的网页的编码格式怎么转换成自己需要的编码格式?
已经找到现成的代码,研究代码背后的动机再解决自己的疑问。

使用python完成知乎模拟登陆相关推荐

  1. python爬虫设计在哪里_《python 爬虫教程 知乎》 怎样用Python设计一个爬虫模拟登陆知乎...

    <python 爬虫教程 知乎> 怎样用Python设计一个爬虫模拟登陆知乎 python 爬虫教程 知乎2020-09-23 01:45:13人已围观 怎样用Python设计一个爬虫模拟 ...

  2. 如何搞定知乎模拟登陆的加密难题?

    作者 | sergiojune 责编 | 郭芮 声明:以下内容仅交流学习,请勿用于非法用途. 如果你现在想模拟登陆知乎,会发现 fromdata 是一串加密的字符串: 看了之后是不是很痛苦?你是不是就 ...

  3. Scrapy实现最新的知乎模拟登陆

    作者:Wilson_Iceman 出处:http://blog.csdn.net/Wilson_Iceman 欢迎转载, 但请保留这段声明.多谢! 最近一直在尝试使用Scrapy实现知乎的模拟登陆,终 ...

  4. Python 爬虫实战,模拟登陆爬取数据

    Python 爬虫实战,模拟登陆爬取数据 从0记录爬取某网站上的资源连接: 模拟登陆 爬取数据 保存到本地 结果演示: 源网站展示: 爬到的本地文件展示: 环境准备: python环境安装 略 安装r ...

  5. 基于Python的HTTPS协议模拟登陆+爬取页面

    之前写的一直没成功,原因是用的不是HTTPS相关的函数.这次仔细研究了一下,有几个需要注意的点,一个是POST模拟登陆的时候,header中的cookie值,不同的网站应该会有不同的要求:另一个是GE ...

  6. 利用python爬虫(part15)--cookie模拟登陆

    学习笔记 文章目录 cookie模拟登陆 获取cookie 爬取我的简介 cookie模拟登陆 有的时候,我们想要抓取一个网站,但是需要先登录才能访问它,如果不输入用户名和密码,我们就会一直停留在登录 ...

  7. Python网络爬虫之模拟登陆

    为什么要模拟登陆 Python网络爬虫应用十分广泛,但是有些网页需要用户登陆后才能获取到信息,所以我们的爬虫需要模拟用户的登陆行为,在登陆以后保存登陆信息,以便浏览该页面下的其他页面. 保存用户信息 ...

  8. Python爬虫实现--微博模拟登陆--涉及到的知识点,python包,实现代码详解。

    之前写过一篇关于爬虫的文章,其中提到了用python requests包请求网页,并用beautifulsoup解析. https://blog.csdn.net/qq_40589051/articl ...

  9. 用python做课表_python模拟登陆urp教务处选课抓取课表

    !!!选课功能已添加!!! 本文地址 csdn 前段时间小编写了一篇利用爬虫做词云分析的帖子,有粉丝反馈说想进一步学习爬虫,所以小编今天就用爬虫模拟登陆学校的教务处为例和大家共同学习.坊间有传言说好多 ...

最新文章

  1. 计算机网络协议教案,计算机网络实验教案(6)网络协议分析-IP协议3.pdf
  2. mysql密码设置 alert_MySQL用户、权限及密码操作
  3. 蓝驰创投朱天宇:用10年尺度看 AI 创业,如何发现独角兽 | 新智元专访
  4. chrome 插件安装:无法添加来自此网站的应用,解决办法。安装本地crx插件方法
  5. Android 面试 - compileSdkVersion、minSdkVersion、targetSdkVersion、buildToolsVersion
  6. Java的后缀分类_JAVA根据文件后缀名分类文件,并且将文件复制到不同的文件夹,求这段代码的注释...
  7. java pdf表单域实现_Java 创建PDF表单域 - 文本框、复选框、列表框、组合框、按钮等...
  8. 《线性代数的几何意义》笔记(1)
  9. java迭代器逆序_迭代器
  10. python requests form data_python使用requests发送multipart/form-data请求数据
  11. linux内核启动过程4:内核运行时
  12. Hive QL【Queries (select)】基本统计及分组函数:group by
  13. 2853: 小A的游戏昵称(郑轻oj)
  14. Vue-CLI 3.x 自动部署项目至服务器
  15. 别看微信,微博,头条用户都很多,自媒体作者也很多
  16. cydia无法安装卸载插件_【初识太极】CAD卸载不干净无法重新安装怎么办?
  17. Qt中用QLabel显示图片
  18. rk3399pro添加ALC5640音频配置
  19. BPNN-Belief Propagation Neural Networks
  20. 【计算理论】图灵机 ( 图灵机设计 )

热门文章

  1. Windows10 mysql解决MySQL服务无法启动 系统出错 发生系统错误 1067
  2. 动态显示电池电量Icon Vue 电量Icon 电池电量
  3. Mac上将mp4视频做成屏保
  4. 【认识 NVIDIA GPU】GPU相关基础概念介绍
  5. 解决问题的能力和个人学习能力总结。
  6. 高速接口----使用sfp完成以太网传输
  7. php仿maka,iH5和MAKA哪个好?
  8. EtherCAT CoE Object 0x603F 的标准
  9. springboot基于web的摩托车销售系统的设计与实现毕业设计源码031706
  10. 713页鸿蒙巨作《鸿蒙HarmonyOS手机应用开发实战》简介