python爬虫-获取headers(报文头)关键参数实例小记

这篇具有很好参考价值的文章主要介绍了python爬虫-获取headers(报文头)关键参数实例小记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

注意!!!!某XX网站逆向实例仅作为学习案例,禁止其他个人以及团体做谋利用途!!!

第一步:请求页面,得到响应。建议首次请求时headers内容都带着,调试的时候根据情况将headers中的参数进行注释,来确定是否为headers的参数或者formdata 参数影响 响应结果。

响应结果:

python爬虫-获取headers(报文头)关键参数实例小记,Python,爬虫

5分钟后相同参数再次请求

python爬虫-获取headers(报文头)关键参数实例小记,Python,爬虫

通过排查headers中的 X-Apikey参数为关键参数。

第二步:全网站搜索X-Apikey 参数。但是该参数在js 文件里只有一个,且是个常量,这时候可以看到有个r.Z.getApiKey(),通过对getApiKey 查找可以看到一些关键信息

python爬虫-获取headers(报文头)关键参数实例小记,Python,爬虫

python爬虫-获取headers(报文头)关键参数实例小记,Python,爬虫 getApiKey 相关信息,通过查看确定是生产X-ApiKey的关键信息

 第三步:打断点(debug),注意由于是找headers的参数,因此断点打完后要去掉cookie重新请求。并且将断点打在 X-ApiKey 的附近会出现断点不起作用,这时候可以考虑在在getApiKey的附近或者该js 文件中搜索headers: 注意!!!需要耐心等待。加载时间有点长。

python爬虫-获取headers(报文头)关键参数实例小记,Python,爬虫

 第四步:执行encryptApiKey() 函数

python爬虫-获取headers(报文头)关键参数实例小记,Python,爬虫

 python爬虫-获取headers(报文头)关键参数实例小记,Python,爬虫

 第五步:执行encryptTime()函数

python爬虫-获取headers(报文头)关键参数实例小记,Python,爬虫

 python爬虫-获取headers(报文头)关键参数实例小记,Python,爬虫

第六步:执行comb()函数

 注意这块比较坑,comb函数传参时 是e,t。 但是在接收参数显示是t, e。 不要被迷惑了。就按照函数comb(e,t) 这种方式python爬虫-获取headers(报文头)关键参数实例小记,Python,爬虫

 这里可以看到 最后返回一个 window.btoa(),这里的btoa() 是base64

python爬虫-获取headers(报文头)关键参数实例小记,Python,爬虫

最后代码展示:文章来源地址https://www.toymoban.com/news/detail-573226.html

# -*- coding:utf-8 -*-
# @Time : 2023/7/13 18:00
# @Author: 水兵没月
import base64
import random
import time

import requests
# LWIzMWUtNDU0Ny05Mjk5LWI2ZDA3Yjc2MzFhYmEyYzkwM2NjfDI3OTk4MzYwOTkxOTU2Mzg=
#  -b31e-4547-9299-b6d07b7631aba2c903cc|2799836099195638
#  -b31e-4547-9299-b6d07b7631ab a2c903cc
API_KRY = 'a2c903cc-b31e-4547-9299-b6d07b7631ab'
# encryptApiKey===e
API_KRY_0 = API_KRY[8:]+API_KRY[:8]

# encryptTime===t
t = int(time.time()*1000)
t_0 = str(1*t+1111111111111)

n = random.randint(0, 9)
r = random.randint(0, 9)
o = random.randint(0, 9)

e = t_0+str(n)+str(r)+str(o)

# comb
comb_n = API_KRY_0+"|"+e
x_api = base64.b64encode(comb_n.encode('utf-8')).decode('utf-8')
print(x_api)



headers = {
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
    'X-Apikey':x_api,
}

s = requests.session()
url = 'https://XXXXXXXXXXXXX'    # 请求链接
res = s.get(url=url, headers=headers)
res.encoding='utf-8'
print(res.text)

 仅作为笔记记录,如有问题请各位大佬来指导

到了这里,关于python爬虫-获取headers(报文头)关键参数实例小记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python爬虫-seleniumwire模拟浏览器反爬获取参数

    在进行数据爬取时,有时候遇到一些比较复杂的js逆向。在不考虑访问效率的情况下,使用selenium模拟浏览器的方法可以大大减少反反爬逆向工作量。但普通的selenium库是无法获取到类似set-cookie等参数的,这时候需要用到selenium-wire库。其用法类似selenium 首先安装selenium-wire库

    2024年02月03日
    浏览(44)
  • python爬取豆瓣电影排行前250获取电影名称和网络链接[静态网页]————爬虫实例(1)

    目录 1.算法原理: 2.程序流程: 3.程序代码: 4.运行结果(部分结果展示): 5.结果分析: (1)利用import命令导入模块或者导入模块中的对象; ①利用requests库获取数据; ②用BeautifulSoup库将网页源代码转换成BeautifulSoup类型,以便于数据的解析和处理; ③用time库进行时间延时

    2023年04月16日
    浏览(67)
  • Nginx 获取自定义请求header头和URL参数

    在 ngx_lua 中访问 Nginx 内置变量 ngx.var.http_HEADER 即可获得请求头HEADER的内容。 在 nginx配置中,通过$http_HEADER 即可获得请求头HEADER的内容。 案例: 在nginx的location配置中,在获取header配置时, 须要在header名称前面加上固定前缀“http_“,并将header名称中的“-”中划线变为下划线

    2024年02月04日
    浏览(38)
  • Spring MVC -- 获取参数(普通对象+JSON对象+URL地址参数+文件+Cookie/Session/Header)

    目录 1.获取参数 1.1获取单个参数 1.2获取多个参数 传参注意事项: 2.获取对象  3.后端参数重命名@RequestParam 4.获取JSON对象@RequestBody 5.从 URL 地址中获取参数 @PathVariable 6.上传文件 @RequestPart 7.获取Cookie/Session/Header 7.1 获取 Request 和 Response 对象 7.2 获取Cookie (1)Servlet 获取 Cooki

    2024年02月16日
    浏览(43)
  • SpringCloud Gateway 网关请求中body、query、header参数的获取和修改

          最近在开发中要改造一个普通SpringBoot接口服务为SpringCloud Gateway网关服务,并且需要在网关做验签,由于我们这个服务需要对外几个第三方平台提供接口,每家请求的传参形式都不同,有将签名信息放请求头、也有将签名信息放query参数、还有直接放body中的,请求头

    2024年01月23日
    浏览(74)
  • Postman学习记录(1)Tests获取返回header中的参数,并自动配置到环境变量中

    //获取header中的参数并赋值给session var session=postman.getResponseHeader(\\\"Session-Token\\\") //获取header中remember的参数并赋值给session var remember=postman.getResponseHeader(\\\"Remember-Me-Token\\\") //session配置到环境变量中 postman.setEnvironmentVariable(\\\"Session-Token\\\",session); //remember配置到环境变量中 postman.setEnvironm

    2024年02月14日
    浏览(49)
  • selenium多实例爬虫的忠告和参数配置

    使用多进程 加快爬虫速度的方法有几种,异步,多线程,多进程和分布式,不管是哪种都会用到多实例。这几种方法中,只有多进程适合selenium,selenium本身不支持异步,多线程曾经尝试过似乎有问题。 采用哪种框架 单线程爬虫本身很简单,而大规模的分布式多进程爬虫就比

    2024年02月06日
    浏览(59)
  • selenium 知网爬虫之根据【关键词】获取文献信息

    哈喽大家好,我是咸鱼 之前咸鱼写过几篇关于知网爬虫的文章,后台反响都很不错。虽然但是,咸鱼还是忍不住想诉苦一下 有些小伙伴文章甚至代码看都没看完,就问我 ”为什么只能爬这么多条文献信息?“(看过代码的会发现我代码里面定义了 papers_need 变量来设置爬取篇

    2024年02月08日
    浏览(49)
  • 【Python】什么是爬虫,爬虫实例

     有s表示加密的访问方式 什么是爬虫 网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或者脚本。由于互联网数据的多样性和资源的有限性,根据用户需求定向抓取相关网页并分析已成为如今主流的爬取策略 爬虫可以做什么 你可以爬取图片,爬取自己想看的视频

    2024年02月02日
    浏览(89)
  • Python爬虫项目70例,附源码!70个Python爬虫练手实例

    今天博主给大家带来了一份大礼,Python爬虫70例!!!以及完整的项目源码!!! 本文下面所有的爬虫项目都有详细的配套教程以及源码,都已经打包好上传到百度云了,链接在文章结尾处! Python爬虫项目100例(一):入门级 1. CentOS环境安装 2. 和谐图网站爬取 3. 美空网数据

    2024年02月07日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包