用接口登录拉勾网

article/2025/7/10 16:40:43

前段时间一直忙于公司项目的测试工作导致一周多没有撸代码,所以今天通过悠悠是博客学习了一下如何让用接口登录拉勾网

下面介绍一下吧!分享下经验以及心得,,虽然我知道也没什么人会看!


首先呢要先登录拉钩网的网站:https://www.lagou.com/

登录后用fiddler抓包查看如下:


当再登陆一次时发现每次登陆的头部有一个code和token是随机变化的,如图箭头所示,那么就要找到这两个参数是如何产生的了。通过查看登录页面的前端代码发现如下图所示的这段注释暴露了,哈哈哈


下面就要通过beautifulsoup来抓取前段页面的这两个参数啦


直接上代码,注释部分我已经解释的很清楚啦!

通过前端抓取过这两个参数后就开始用接口去登录吧:


整体代码如下!::

#coding:utf-8
import requests,hashlib
import re
from bs4 import BeautifulSoup
import urllib3
urllib3.disable_warnings()class Lagou(object):def __init__(self,s):self.s = sdef get_token(self):'''
        </script>

        <!-- 页面样式 -->    <!-- 动态token,防御伪造请求,重复提交 -->
        <script>
        window.X_Anti_Forge_Token = '286fd3ae-ef82-4019-89c4-9408947a0e26';
        window.X_Anti_Forge_Code = '74603111';
        </script>
        '''
        url = 'https://passport.lagou.com/login/login.html'
        header = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"
        }self.s.headers.update(header)data = self.s.get(url,headers = header)soup = BeautifulSoup(data.content,'html.parser',from_encoding='utf-8')token_code = {}try:#先找到第2个script节点
            t = soup.find_all('script')[1].get_text()#print(t)
            #再用正则取key
            token_code['X_Anti_Forge_Token'] = re.findall(r"Token = '(.+?)'", t)[0]token_code['X_Anti_Forge_Code'] = re.findall(r"Code = '(.+?)'", t)[0]return token_codeexcept Exception as e:print('获取token等信息失败')token_code['X_Anti_Forge_Token'] =''
            token_code['X_Anti_Forge_Code'] = ''
        #print(token_code)
            return token_code'''
    def encryptPwd(self,passwd):
        # 对密码进行了md5双重加密
        passwd = hashlib.md5(passwd.encode('utf-8')).hexdigest()
        # veennike 这个值是在js文件找到的一个写死的值
        passwd = 'veenike'+passwd+'veenike'
        passwd = hashlib.md5(passwd.encode('utf-8')).hexdigest()
        return passwd
    '''

    def login(self,user,password):'''
        function:登录拉勾网网站
        :param s:  传s = requests.session()
        :param gtoken: 上一函数getTokenCode返回的tokenCode
        :param user: 账号
        :param psw: 密码
        :return: 返回json
        '''
        gtoken = self.get_token()url = 'https://passport.lagou.com/login/login.json'
        h = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36","Content-Type": "application/x-www-form-urlencoded; charset=UTF-8","X-Requested-With": "XMLHttpRequest","X-Anit-Forge-Token": gtoken['X_Anti_Forge_Token'],  #取上个方法的返回值
            "X-Anit-Forge-Code": gtoken['X_Anti_Forge_Code'],"Referer": "https://passport.lagou.com/login/login.html",}self.s.headers.update(h) #更新头部
        d = {"isValidate":'true',"username": user,"password": password,"request_form_verifyCode": "","submit": ""
                }r2 = self.s.post(url,headers = h,data=d,verify=False)#print(r2.text)
        print(r2.json())if __name__=='__main__':s = requests.session()la = Lagou(s)la.login('xxxxx','xxxxxxx')
其实通过fiddler也能看出来密码是被加密过的,具体加密方式我不知道,但是网上说是通过md5加密后再次加盐后用md5加密
这里我就不说了,你直接复制你的加密后的密码就行了!
写的比较简单,有不懂的可以qq问我 970185127


http://chatgpt.dhexx.cn/article/yqILYrKD.shtml

相关文章

拉勾网登录问题

拉钩登录问题&#xff0c;在参考别人的博客后&#xff0c;解决啦 class lagouSpider(CrawlSpider):name lagouallowed_domains [www.lagou.com]start_urls [https://www.lagou.com/]agent "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/" \"537.36 (…

selenium实例登陆拉勾网 外加手动验证验证码

selenium模拟登陆拉钩网 from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import os, json, time from urllib import parse from lxml import etree from fake_…

python -- 拉勾网爬虫模拟登录

入门爬虫一段时间&#xff0c;最近在做一个拉勾网的数据爬虫分析&#xff0c;项目也快接近尾声了&#xff0c;于是抽个时间写一下这个项目中遇到的一些问题。 目前拉勾网的反爬虫机制还是可以的&#xff0c;一开始用scrapy shell 分析拉勾网&#xff0c;发现拉勾网要校验usera…

基于Python的拉勾网的模拟登录获取cookie

lagou_login 拉勾网的模拟登录获取cookie&#xff0c;为爬虫做准备, 喜欢的点个赞&#xff0c;谢谢 入门爬虫一段时间&#xff0c;最近在做一个拉勾网的数据爬虫分析&#xff0c;项目也快接近尾声了&#xff0c;于是抽个时间写一下这个项目中遇到的一些问题。 目前拉勾网的反…

selenium模拟登陆拉勾网

初学selenium&#xff0c;尝试了一下模拟登录拉勾网&#xff0c;感觉还挺好玩的 就剩下最后的验证码不会处理了。。。 思路就是在网页代码中找到对应的框的属性进行查询&#xff0c;然后点击、输入就进行了。 之后就会看到Chrome弹出来自动完成一系列动作&#xff0c;感觉很…

如何高效地学习编程语言?

学习编程语言是一种技巧&#xff1a;做好了&#xff0c;你会感受到掌握新事物之后的快感&#xff1b;做不好&#xff0c;就会接二连三的沮丧&#xff0c;甚至放弃。下面我将介绍一些技巧与方法&#xff0c;以便帮助大家高效地学习。 持续测试自己以抵抗胜任力错觉 最不济的学习…

完全零基础,到底该怎样学习编程?

学习编程的过程&#xff0c;大致如下&#xff1a; 看书、看博客、学课程或者看视频等 模仿着书上或者博客的代码&#xff0c;进行复现&#xff0c;复现不重要&#xff0c;思考才是关键 ⚠️ 思考学习别人思路后&#xff0c;脱离书本和博客&#xff0c;完全自己实现功能 自己…

学习编程先学什么?怎么学习编程?

怎么学习编程 随着IT行业的快速发展&#xff0c;现在越来越多的人看中IT行业的前景&#xff0c;很多的人选择IT行业。其中大部分人会选择了学习编程语言&#xff0c;那么&#xff0c;怎么学习编程语言、学习编程先学什么就是人们最常遇到的困难&#xff0c;因此&#xff0c;小编…

我是如何学习编程的

我是如何学编程的 前世因今世果一轮回一回眸理论基础资源选择编程没有捷径合格程度兴趣培养学习时长解决问题推荐资源 学习资源推荐 微信扫码关注公众号 &#xff1a;前端前端大前端&#xff0c;追求更精致的阅读体验 &#xff0c;一起来学习啊关注后发送关键资料,免费获取一整…

骨灰级程序员告诉你,怎样学习编程,才能快速从0基础,变成编程大师

本文章向大家介绍怎样学习编程&#xff0c;才能快速从0基础&#xff0c;变成编程大师&#xff0c;主要包括骨灰级程序员告诉你&#xff0c;怎样学习编程&#xff0c;才能快速从0基础&#xff0c;变成编程大师使用实例、应用技巧、基本知识点总结和需要注意事项&#xff0c;具有…

新手如何学习编程?

文章来源&#xff1a;微信公众号丨代码情缘 这篇文章就和大家简单聊聊&#xff0c;如何学习编程&#xff1f; 2021 年内卷、躺平从一个小圈子话题快速升温为社会话题&#xff0c;其实很多人都想过躺平&#xff0c;那么首先问一下自己&#xff0c;有什么资本躺平&#xff1f; …

想自学编程,先学什么好?给你三个建议,自己斟酌

要学一门编程语言&#xff0c;我们要了解相应的语法规则&#xff0c;大概知道计算机读取代码的逻辑&#xff0c;培养机器思维。 学习编程&#xff0c;最开始应该先了解一下计算机的历史&#xff0c;计算机基础。因为你在编程的时候&#xff0c;你需要让计算机知道你的思维&…

微信小程序map组件地图定位当前位置

小程序map组件的应用方式&#xff1a;简单版 wxml: <map id"map" latitude"{{latitude}}" longitude"{{longitude}}" controls"{{controls}}" bindcontroltap"controltap"markers"{{markers}}" bindmarkerta…

Android 开发百度地图定位显示当前位置

Android 开发百度地图定位显示当前位置 配置百度地图-获取 SHA1 找到自己安装 Android SDK 的位置&#xff08;&#xff0c;该位置下面有一个 .android 文件夹&#xff1b;使用 cmd 命令进入该文件夹下&#xff1b;然后执行命令 keytool -list -v -keystore debug.keystore&a…

uniapp获取当前位置(定位-经纬度及城市信息)

uniapp集成方法&#xff0c;跟小程序wx.getLocation不同&#xff0c;可直接获取经纬度及城市信息&#xff08;当然你也可以先获取经纬度再解析成具体城市&#xff09; uni.getLocation({type: wgs84,geocode:true,//设置该参数为true可直接获取经纬度及城市信息success: func…

Android 百度地图定位显示当前位置

配置百度地图 配置百度地图 获取 SHA1 在 Android Studio 中通过命令行获取&#xff0c;步骤如下&#xff1a; 点击左下角的 Terminal进入D:\Android\jre\bin输入指令keytool -list -v -keystore debug.keystore 获取百度地图密钥&#xff08;AK&#xff09; 进入百度地图官网&…

微信小程序 腾讯地图大头针定位,获取当前地址,地图移动选点,定位当前位置

主要实现功能&#xff1a; a.进入地图界面&#xff0c;会自动获取当前位置&#xff08;用户需授权地理位置权限&#xff09;&#xff0c;并显示省市区在左上角&#xff0c;根据个人需求&#xff0c;我只显示了区 b.大头针实现&#xff0c;拖动地图&#xff0c;大头针都能获取到…

[android] 百度地图开发 (三).定位当前位置及getLastKnownLocation获取location总为空问题

前一篇百度地图开发讲述"(二).定位城市位置和城市POI搜索"&#xff0c;主要通过监听对象MKSearchListener类实现城市兴趣点POI(Point of Interest)搜索。该篇讲述定位当前自己的位置及使用getLastKnownLocation获取location总时为空值的问题。 一. 定位当前位置的原…

Android进阶之路 - 定位当前位置、获取经纬度

最近又遇到定位场景&#xff0c;需要上传经纬度&#xff0c;正好同事写了&#xff0c;我就记录一下方便你我他 ~ ~ 今年开始用的kt比较多&#xff0c;所以篇内用的kt&#xff0c;见谅见谅 前情悉知 获取当前位置时&#xff0c;需要判断用户是否授权&#xff0c;这里用到的是 …

vue-amap实现实现初始化并定位当前位置,搜索,定位,增加点标记

实现如图展示&#xff0c;初始化并定位当前位置&#xff0c;搜索&#xff0c;定位&#xff0c;增加点标记 下载vue 1.vue页设置 如果是新版web-js的密钥&#xff0c;有配套的安全秘钥&#xff0c;则需要另外在created加入&#xff0c;否则会报undefined window._AMapSecurity…