首先模拟登录,思路很真要

1.首先我们要弄清楚服务器是如何处理我们的请求的,如何给我们返回数据的

首先我们观察我们提交的数据,提交请求的方式,如图所示明显我们的密码被服务器给加密了,同时要清楚一点,经过加密的数据的加密方式必定在某个文件中有方法被调用,于是我们可以找到

于是乎我们就可以得知加密方式是md5 加密方式很明显了

于是通过抓包我们发现在login.json 的请求头中有这样两个字段,通过分析它们是动态的我们不能直接加载请求头中直接去发送请求,分析可知

访问这个连接后我们在返回的string中可以通过该正则的方式取到值,在加到我们的请求头中进行请求,这样就可以登录成功了,

分析之后我们可以直接上代码了

#!/usr/bin/env python

# _*_ coding:utf-8 _*_

import hashlib

import requests

import re

headers={'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','Accept-Language': 'zh-CN,zh;q=0.9','Pragma': 'no-cache','Referer':'https://passport.lagou.com/login/login.html?ts=1517818358492&serviceId=lagou&service=https%253A%252F%252Fwww.lagou.com%252F&action=login&signature=6EB4BF8F73B5A73E6B327148B42529F1','Upgrade-Insecure-Requests':'1','User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36'}

def deal_passwd(passwd):

v= 'veenike'#次处放置伪代码

passwd=加密(passwd)

passwd= 加密(v + passwd +v)return passwd

之后我们要得到的值

X-Anit-Forge-Code:54559207X-Anit-Forge-Token:93e4d102-1843-42e4-a419-5efc1cb4bae6

def get_token():

token={}

url= 'https://passport.lagou.com/grantServiceTicket/grant.html'request= session.get(url,headers=headers)

html=request.content

#通过正则来进行匹配得到我们需要的数据

reg1= ("window.X_Anti_Forge_Token = '[\s\S]{36}'")

reg2= ("window.X_Anti_Forge_Code = '[\d]{8}'")

X_Anti_Forge_Token= re.findall(reg1, html)[0].split()[-1][1:-1]

X_Anti_Forge_Code= re.findall(reg2, html)[0].split()[-1][1:-1]

print X_Anti_Forge_Token,X_Anti_Forge_Code

token['X-Anit-Forge-Token'] =X_Anti_Forge_Token

token['X-Anit-Forge-Code'] =X_Anti_Forge_Codereturn token

最后我们可以处理自己的登录函数

def login(user, passwd, captchaData=None, token_code=None):

headers={'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','Accept-Language': 'zh-CN,zh;q=0.9','Pragma': 'no-cache','Referer': 'https://passport.lagou.com/login/login.html?ts=1517818358492&serviceId=lagou&service=https%253A%252F%252Fwww.lagou.com%252F&action=login&signature=6EB4BF8F73B5A73E6B327148B42529F1','Upgrade-Insecure-Requests': '1','User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36'}

password=deal_passwd(passwd)

postData={'isValidate' : 'true','password': password,

# 如需验证码,则添加上验证码'request_form_verifyCode' : (captchaData if captchaData!=None else ''),#一般没有出现验证码,所以关于处理验证码的部分没有考虑,我们可以尝试把验证码放置到本地进行手动输入,或者借助于第三方打码'submit' : '','username': user

}

login_url = 'https://passport.lagou.com/login/login.json'take_token=get_token() #调用我们之前写好的方法,得到我们要的字段

headers.update(take_token)#更新我们的请求头,加上我们去到的字段进行请求request= session.post(login_url,data=postData,headers=headers)

print request.content

#最后我们调用

login(user,passwd)

#此时已经登录成功,可以在返回的数据中看到自己的名字等,可以进行后续的操作

拉勾 python_python 登录拉钩相关推荐

  1. 通过路径图比较BOSS直聘,智联招聘,拉勾的登录功能

    共同点: 1.都针对新用户选择手机接收验证码直接注册登录(手机接收验证码在登录的同时,对新用户来说可以同时具备注册功能,节省时间,最简单的登录注册方式). 2:都抛弃了最老式的密保问题找回密码的方式, ...

  2. 1.2亿美金“卖身”,拉勾在赌什么?

    价值君注:拉勾被前程无忧控股一事,早在后者这家美股上市公司正式发布公告前传闻消息就已经扩散了很久.而受限于SEC公告规则,拉勾的高管团队未对外回应,直到9月21号晚上,才正式告知了公司的PR部门. & ...

  3. 为什么投资拉勾的是前程无忧?

    今天互联网圈最大的新闻,就是前程无忧1.2亿美金投资了拉勾.在互联网圈,很多人都知道拉勾,但很少人关心前程无忧. 这种上古时代的网站谁还用呢?为什么一家公司可以拿出将近10亿现金?后来扒了一下他们的财 ...

  4. 06_04_SSM拉勾教育后台管理系统(权限模块\登录及动态菜单)

    拉勾教育后台管理系统(SSM)权限模块 权限概念介绍 权限:权利(能做的)和限制(不能做的),在权限范围内做好自己的事情,不该看的不看,不该做的不做 认证: 验证用户名密码是否正确的过程 授权: 对用 ...

  5. 麻雀虽小五脏俱全的Vue拉勾项目,看看应该有帮助

    全栈系列Vue版拉勾,客官们来瞧瞧 模拟拉勾app系列---vue前端界面 github地址,来猛戳吧 前言 本项目是本人在闲暇时间编写的一个初级引导项目,麻雀虽小五脏俱全,所使用的东西绝大多数在开发 ...

  6. 拉勾教育管理系统(后端)

    拉勾教育管理系统 项目介绍与后台系统搭建 项目架构 项目介绍 ​ 拉钩教育后台管理系统,是提供给拉钩教育的相关业务人员使用的一个后台管理系统,,业务人员可以在这个后台管理系统中,对课程信息.讲师信息. ...

  7. java之学习记录 5 - 1 - 模拟拉勾项目介绍与后台系统搭建

    项目架构(此文章只供个人学习的记录) 1 项目介绍 拉勾教育后台管理系统,是提供给拉勾教育的相关业务人员使用的一个后台管理系统, 业务人员可以在这个后台管理系统中,对课程信息.讲师信息. 学员信息等数 ...

  8. 08_01_分布式架构搭建拉勾教育PC站

    分布式架构搭建拉勾教育PC站 1. 项目架构 1.1 项目介绍 拉勾教育PC站,是提供给我们学员观看技术视频的网站.学员使用手机号注册登录后,可以选择适合自己的课程,并观看课程视频,当然,有免费的课程 ...

  9. 关于解决爬取拉勾全网遇到的302重定向问题的一些记录

    问题背景 没想到,拉勾再次进行了一番反爬策略的更新,不再是针对爬取频率.user-agent锁定等方案去反爬了,爬取的难度也增加了一些. 今天发现,如果单纯地使用scrapy的crawlspider去 ...

最新文章

  1. 高斯混合模型的解释及Python实现
  2. Gradient Tree Boosting:梯度提升树详解
  3. ThinkPad紧凑型蓝牙键盘(0B47189)鼠标滚轮用法,F1到F12功能键的功能切换以及其他技巧
  4. Bean生命周期配置
  5. ./configure: error: SSL modules require the OpenSSL library.
  6. ruby mysql dbi_Ruby/DBI-数据库访问接口
  7. can总线配置读入是什么意思_Simulink(常量amp;总线amp;示波器模块)+嵌入式(AURIX入门学习记录CAN通信配置)...
  8. PHP的.htaccess作用
  9. AdventureWorks数据库数据字典
  10. android+浮层布局,如何使用Android实现单页面浮层可拖动view
  11. 解决 required a bean of type ‘com.aliyun.oss.OSSClient‘ that could not be found
  12. SALT安装--CentOS7
  13. 商品详情页实现价格区间价
  14. 创建一个动态空间存储未知大小的二维数组
  15. idea gradle一直卡在initializing gradle projects data终极解决
  16. excel中如何实现在年龄一栏加1即让某列数字分别加1
  17. xampp搭建运行php虚拟主机的详细步骤
  18. 电脑重装系统后Win11用户账户控制设置怎么取消
  19. IDEA+Java+Servlet+JSP+Mysql实现Web停车场管理系统【建议收藏】
  20. Spring Boot 项目搭建

热门文章

  1. 以太坊(Ethereum) - 什么是智能合约
  2. 探索者STM32F407开发板学习笔记一安装调试,串口下载
  3. CNNs中,什么是max pooling, 为什么需要max pooling
  4. 关于深度态势感知问题的思考
  5. CSDN下载积分获取途径
  6. docker容器日常管理(四)
  7. MySQL中的条件判断函数 CASE WHEN、IF、IFNULL你会用吗?
  8. PB 打印机打印横纵向设置
  9. K8s——kubernetes集群中ceph集群使用【下】
  10. 查看网页源代码的方法