拉勾网访问显示操作太频繁解决思路,用session获取cookie添加到请求头(报文)里

本文主要是介绍拉勾网访问显示操作太频繁解决思路,用session获取cookie添加到请求头(报文)里,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

拉勾网的职位界面使用ajax技术,在原网页代码无法获取搜索的职位信息。
1.抓包分析 ,
!在这里插入图片描述
通过反复观察,找到了信息职位的界面,根据这个数据包的信息制作头部信息
在这里插入图片描述

    headers = {
'User-Agent': random_user, #随机用户
"Referer":"https://www.lagou.com/jobs/list_python/",# 从哪个访问过来
"X-Anit-Forge-Token":"None",
"X - Anit - Forge - Code": "0","X - Requested - With":"XMLHttpRequest"
}

制作表单
在这里插入图片描述

data = {"first":"true",
"pn":1, # 这里是页码
"kd":"python"
}response = requests.post(url_2, headers=get_headers(), data=data,proxies=proxies_ip,timeout=5)
print(response.json())`

请求后提示
{‘status’: False, ‘msg’: ‘您操作太频繁,请稍后再访问’, ‘clientIp’: ‘171.35.148.185’, ‘state’: 2402}

2.分析这里请求头除了cookie信息没有添加其余都加入进去,本来想着用手动复制,但是复制进入报头后是这样

在这里插入图片描述
天哪,好长的cookie,一点点整理,删除空格换行符实在是太麻烦了,懒得手动去弄(其实主要原因是cookie是会失效的,如果失效后每次都手动修改,这也太那啥了。。。),作为一个天才的程序员(自夸下),肯定有其他什么办法的。想起来之前看的关于cookie和session,一句话概括,大概就是http是无状态协议,我们第一次访问的时候会产生一个cookie,网站服务器的session会把session_ID 添加到cookie里在把cookie发送会给访问者,这样下次再次访问网站滴时候再次发送cookie,网站获取到了cookie里的session_ID就知道了访问者是之前的那位,那么思路就有了,查下找session的相关文档

3.找到了相关代码,用session访问网站静态页面网站返回的cooike添加到报头里

    session = requests.session() # 访问session,打开sessionsession.get(url_1,headers = get_headers())# 打开静态网页,讲cookie放入sessioncookies = session.cookies # 赋值session中的cookiescookies = cookies.get_dict()# 类转换成字典print(cookies)

在这里插入图片描述
4.打印出来获取到了发现获取到了cookie,把我们的cookie加入请求在访问网站的数据动态网页

 response = requests.post(url_2, headers=get_headers(), data=data,proxies=proxies_ip,cookies=cookies,timeout=5)if response.status_code == 200:print(response.json())

在这里插入图片描述
获取到了网站数据,我厉害不厉害。。。快给我点赞
在这里插入图片描述

这篇关于拉勾网访问显示操作太频繁解决思路,用session获取cookie添加到请求头(报文)里的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/202856

相关文章

如何设置vim永久显示行号

《如何设置vim永久显示行号》在Linux环境下,vim默认不显示行号,这在程序编译出错时定位错误语句非常不便,通过修改vim配置文件vimrc,可以在每次打开vim时永久显示行号... 目录设置vim永久显示行号1.临时显示行号2.永www.chinasem.cn久显示行号总结设置vim永久显示行号在li

linux报错INFO:task xxxxxx:634 blocked for more than 120 seconds.三种解决方式

《linux报错INFO:taskxxxxxx:634blockedformorethan120seconds.三种解决方式》文章描述了一个Linux最小系统运行时出现的“hung_ta... 目录1.问题描述2.解决办法2.1 缩小文件系统缓存大小2.2 修改系统IO调度策略2.3 取消120秒时间限制3

Java访问修饰符public、private、protected及默认访问权限详解

《Java访问修饰符public、private、protected及默认访问权限详解》:本文主要介绍Java访问修饰符public、private、protected及默认访问权限的相关资料,每... 目录前言1. public 访问修饰符特点:示例:适用场景:2. private 访问修饰符特点:示例:

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

C# 读写ini文件操作实现

《C#读写ini文件操作实现》本文主要介绍了C#读写ini文件操作实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、INI文件结构二、读取INI文件中的数据在C#应用程序中,常将INI文件作为配置文件,用于存储应用程序的