Python自动化访问reestr-zalogov.ru时POST请求token来源及传参问题
交互自动化实现方案
- 第一步:抓包获取完整请求参数
打开浏览器F12开发者工具,切换到「网络」面板,勾选「保留日志」选项,手动输入编号2021-006-095480-983点击查询后,找到对应POST请求,在「载荷」标签页就能看到完整的data参数结构,常规必填参数一般包含查询编号、搜索类型字段,以及你提到的token字段(通常命名为token、csrf_token或者accessToken)。 - 第二步:提取token
你看到的长字符串令牌,大概率是首次访问查询页面时,服务器返回的HTML中内嵌的隐藏表单字段:你可以先发送GET请求访问查询页,解析返回的HTML源码,搜索和token相关的隐藏input标签即可提取到有效token。如果HTML中没有找到对应字段,说明令牌是前端JS加密生成,你可以直接用Playwright、Selenium这类浏览器自动化工具模拟点击操作,跳过手动解析token的步骤。 - 第三步:请求示例代码
import requests from bs4 import BeautifulSoup # 初始化会话维持cookie关联 session = requests.Session() # 先访问页面获取令牌 page_response = session.get("https://www.reestr-zalogov.ru/search/index") soup = BeautifulSoup(page_response.text, "lxml") # 将下面的name值替换为你抓包得到的token字段名 token = soup.find("input", {"name": "替换为实际token字段名"})["value"] # 构造POST请求参数,补充抓包得到的所有必填字段 post_data = { "token": token, "query": "2021-006-095480-983", # 其余抓包得到的必填参数在此处补充 } # 发送查询请求 response = session.post( "https://www.reestr-zalogov.ru/search/index", data=post_data ) # 输出查询结果 print(response.json() if response.headers.get("content-type") == "application/json" else response.text)
内容的提问来源于stack exchange,提问作者damdamdamdam
相关产品推荐
相关产品推荐

