首页 > 其他分享 >【逆向】打开页面403,加密值如何有其它页面内正则提取并更新

【逆向】打开页面403,加密值如何有其它页面内正则提取并更新

时间:2024-08-22 17:24:18浏览次数:14  
标签:22% headers 正则 api sec key 403 gov 页面

一、问题出现

# import requests
# url = 'https://www.regulations.gov/search?sortBy=postedDate&sortDirection=desc'
# response = requests.get(url)
# print(response.text)
正常页面打开没有自己看到的内容。

F12找到新的地址

import requests

# headers = {
#     'accept': 'application/vnd.api+json',
#     'accept-language': 'zh-CN,zh;q=0.9',
#     # 'origin': 'https://www.regulations.gov',
#     'priority': 'u=1, i',
#     'referer': 'https://www.regulations.gov/',
#     'sec-ch-ua': '"Not)A;Brand";v="99", "Google Chrome";v="127", "Chromium";v="127"',
#     'sec-ch-ua-mobile': '?0',
#     'sec-ch-ua-platform': '"Windows"',
#     'sec-fetch-dest': 'empty',
#     'sec-fetch-mode': 'cors',
#     'sec-fetch-site': 'same-site',
#     'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36',
#     'x-api-key': '5F20SbTVakeYfU9i5gX1dxx96sw4KELUQxAHhcHa',
# }
#
#  params = {
#     'page[number]': '1',
#     'sort': '-postedDate',
#  }
# 
#  response = requests.get('https://api.regulations.gov/v4/documents', params=params, headers=headers)
# # print(response.status_code)

响应内容出现了,但是有一个问题反爬的内容在header中

'x-api-key': '5F20SbTVakeYfU9i5gX1dxx96sw4KELUQxAHhcHa',

'referer': 'https://www.regulations.gov/',页面跳转处

二、如何解决这个问题

通过搜索发现在这个页面中

通过请求获取响应

# import requests


#
# headers = {
#     'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
#     'accept-language': 'zh-CN,zh;q=0.9',
#     'cache-control': 'max-age=0',
#     # 'cookie': '_gid=GA1.2.2002642573.1724280773; _ga_CSLL4ZEK4L=GS1.1.1724280769.1.1.1724281416.0.0.0; _ga=GA1.2.708221610.1724280770; _ga_JGTFN0MKWK=GS1.2.1724280773.1.1.1724281419.0.0.0',
#     'if-modified-since': 'Wed, 22 May 2024 21:16:53 GMT',
#     'if-none-match': 'W/"664e60c5-d68"',
#     'priority': 'u=0, i',
#     'sec-ch-ua': '"Not)A;Brand";v="99", "Google Chrome";v="127", "Chromium";v="127"',
#     'sec-ch-ua-mobile': '?0',
#     'sec-ch-ua-platform': '"Windows"',
#     'sec-fetch-dest': 'document',
#     'sec-fetch-mode': 'navigate',
#     'sec-fetch-site': 'same-origin',
#     'sec-fetch-user': '?1',
#     'upgrade-insecure-requests': '1',
#     'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36',
# }

# response = requests.get('https://www.regulations.gov/search?sortBy=postedDate&sortDirection=desc',  headers=headers)
# print(response.text)
#
# # apiKey%22%3A%22 5F20SbTVakeYfU9i5gX1dxx96sw4KELUQxAHhcHa  %22%2C%22apiCommentKey
# import re
# api_key= re.search(r"apiKey%22%3A%22(.*?)%22%2C%22apiCommentKey",response.text).group(1)
# print(api_key)
# headers.update({"x-api-key":api_key})

# # apiKey%22%3A%22 5F20SbTVakeYfU9i5gX1dxx96sw4KELUQxAHhcHa %22%2C%22apiCommentKey

这里要用到正则,re.search(r"apiKey%22%3A%22(.*?)%22%2C%22apiCommentKey",response.text).group(1)

并更换x-api-key的值注意格式问题

# headers.update({"x-api-key":api_key})

三、代码实现

import requests

headers = {
    'accept': 'application/vnd.api+json',
    'accept-language': 'zh-CN,zh;q=0.9',
    # 'origin': 'https://www.regulations.gov',
    'priority': 'u=1, i',
    'referer': 'https://www.regulations.gov/',
    'sec-ch-ua': '"Not)A;Brand";v="99", "Google Chrome";v="127", "Chromium";v="127"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'sec-fetch-dest': 'empty',
    'sec-fetch-mode': 'cors',
    'sec-fetch-site': 'same-site',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36',
    'x-api-key': '2',
}

# response1 = requests.get('https://www.regulations.gov/search?sortBy=postedDate&sortDirection=desc',  headers=headers)
# print(response1.text)
#
# # apiKey%22%3A%22 5F20SbTVakeYfU9i5gX1dxx96sw4KELUQxAHhcHa  %22%2C%22apiCommentKey
# import re
# api_key= re.search(r"apiKey%22%3A%22(.*?)%22%2C%22apiCommentKey",response1.text).group(1)
# print(api_key)
# headers.update({"x-api-key":api_key})

response = requests.get('https://api.regulations.gov/v4/documents', headers=headers)
print(response.status_code)

正常打开页面

标签:22%,headers,正则,api,sec,key,403,gov,页面
From: https://blog.csdn.net/lfsysc/article/details/141421559

相关文章

  • 七、SPA单页面实现SEO优化之SSR服务器渲染
    前言:关于SPA和SEO优化、SSR服务器渲染的介绍可以参考这里:六、什么是SEO优化(搜索引擎优化)?SPA单页面应用如何实现SEO优化?通过上一篇文章可以了解到,VueSPA单页面应用对SEO不友好,但是也有相应的解决方案。我了解到的SEO的实现方式有以下几种:1.SSR服务器渲染;2.静态化;3.预......
  • Android 10.0 锁屏页面忘记锁屏密码情况下点击5次解锁图标弹出锁屏密码功能实现
    1.前言在10.0的系统ROM定制化开发中,在一些产品中带锁屏密码的功能中,系统默认是滑动解锁,但是客户会设置锁屏密码,在某些时候会忘掉锁屏密码,导致需要进入恢复出厂设置然后才能进入系统桌面,这样就导致系统的保存的资料都丢失了,所以需要要求在锁屏密码页面在忘记解锁密码的情况下......
  • webpack4升级到webpack5后部分页面出现Uncaught (in promise) ReferenceError: Cannot
    循环依赖当两个或多个模块相互引用时,就会发生JavaScript中的循环依赖(也称为循环依赖)。这可以是直接引用(A->B->A):或间接( A->B->C->A):虽然循环依赖可能不会直接导致错误,但它们几乎总是会带来意想不到的后果。这可能表现为TypeScript类型检查缓慢或开发服务器频......
  • 页面405是什么原因
    HTTP状态码405表示“MethodNotAllowed”,它指示客户端尝试使用不被服务器允许的HTTP方法来请求资源。换句话说,405状态码表示所请求的资源不支持当前使用的HTTP方法。常见的HTTP方法包括GET、POST、PUT、DELETE等。当客户端使用了服务器不支持的HTTP方法时,服务器会返回405状态......
  • 正则表达式可以匹配正确的字符串但是不能匹配小美的心
    高情商:省流极简版低情商:怎么连个例子都没有正则表达式常用元字符:. 匹配除换行符以外的任意字符\w 匹配字母或数字或下划线\s 四配任意的空白符\d 匹配数字\n 匹配一个换行符\t 匹配一个制表符^ 匹配字符串的开始$ 匹配字符串的结......
  • Python 正则表达式详解 带例题演示
    Python正则表达式正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python自1.5版本起增加了re模块,它提供Perl风格的正则表达式模式。re模块使Python语言拥有全部的正则表达式功能。compile函数根据一个模式字符串和可选的标志......
  • vue 内嵌外部页面
    参考:https://blog.csdn.net/weixin_43957384/article/details/131111544PlanEmbedanHTMLpageinVue:UseaniframetoembedtheexternalHTMLpagewithinaVuecomponent.CommunicatebetweenVueandtheembeddedHTMLpage:UsepostMessageAPIforco......
  • 2.可视化web页面
    1.1.基本元素与布局_文本与标题1.2.基本元素与布局_图片与媒体1.3.基本元素与布局_表格2.1.交互组件_按钮与触发事件2.2.交互组件_输入框与表单2.3.交互组件_下拉框与选择器3.1.数据可视化_绘图与图表3.2.数据可视化_Matplotlib、Plotly等集成4.使用Markdown增强......
  • 我们是如何测试数百个页面的
    自动化测试是确保软件质量和提供良好用户体验的有效方式。在Woovi,我们拥有数千个页面,用户与我们的第一次接触通常会通过这些展示我们产品的页面。因此,我们需要确保每个页面都能正常运行。每一个访问我们页面的用户都代表着一个新的潜在客户。测试页面的挑战Woovi的页面仅展示......
  • Nuxt3 使用animate.css来实现页面切换过渡效果
    首先,如果两个page分别在不同的layout下,是无法使用pageTransition来实现切换效果的,这时候需要使用layoutTransition来实现切换效果这里采用npmpackage的方式安装animate.css,当然采用cdn的形式也是可以的npmianimate.css然后在app.vue中导入<scriptsetup>import"anima......