python - 如何使用 Python 请求登录网站
问题描述
我正在尝试登录这个特定的网站:https ://cvmweb.cvm.gov.br/SWB/default.asp?sg_sistema=fundosreg 。但为了做到这一点,我需要在第一个字段中指定 CNPJ(例如:42133922000117)。之后,我需要写验证码图像编号(就像照片Step - 1一样)。
Onde 写完这些数字后,我需要继续浏览该网站去其他链接 - 需要使用“请求”python 库来做到这一点。但是我还不能达到这一步,因为在我的请求之后,它一直返回我在第一页上,就像我没有通过指定的数字 (CNPJ) 和图像编号验证码一样。
我检查了标题,以便我可以执行相同的请求(POST 和 GET)以通过第一页。
已经尝试过:
import requests
r = requests.Session()
header = {
"Host": "cvmweb.cvm.gov.br",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"Accept-Language": "en-US,en;q=0.5",
"Accept-Encoding": "gzip, deflate, br",
"Content-Type":"application/x-www-form-urlencoded",
"Referer":"https://cvmweb.cvm.gov.br/SWB//Sistemas/SCW/CPublica/CConsolFdo/FormBuscaParticFdo.aspx",
"Origin":"https://cvmweb.cvm.gov.br",
"Connection": "keep-alive",
"Cookie": "_ga=GA1.3.1171259674.1623987457; ASP.NET_SessionId=0ra0n032veoxu0n2ldjz5fux; CVMWebCookie=SessionKey=%7BBD9B2C98%2D0DCD%2D4908%2D94E8%2D874C25C0B1F0%7D; _gid=GA1.3.1633343057.1626113124; ASPSESSIONIDQUTQACTT=KOBKLHMBMNPNENBAEMLFGPEJ; _gat=1",
"Upgrade-Insecure-Requests": "1"
}
r.post(url='https://cvmweb.cvm.gov.br/SWB//Sistemas/SCW/CPublica/CConsolFdo/FormBuscaParticFdo.aspx',headers=header)
header_get = {
"Host": "cvmweb.cvm.gov.br",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"Accept-Language": "en-US,en;q=0.5",
"Accept-Encoding": "gzip, deflate, br",
"Referer":"https://cvmweb.cvm.gov.br/SWB//Sistemas/SCW/CPublica/CConsolFdo/FormBuscaParticFdo.aspx",
"Origin":"https://cvmweb.cvm.gov.br",
"Connection": "keep-alive",
"Cookie": "_ga=GA1.3.1171259674.1623987457; ASP.NET_SessionId=0ra0n032veoxu0n2ldjz5fux; CVMWebCookie=SessionKey=%7BBD9B2C98%2D0DCD%2D4908%2D94E8%2D874C25C0B1F0%7D; _gid=GA1.3.1633343057.1626113124; ASPSESSIONIDQUTQACTT=KOBKLHMBMNPNENBAEMLFGPEJ; _gat=1",
"Upgrade-Insecure-Requests": "1"
}
cvm = r.get(url='https://cvmweb.cvm.gov.br/SWB/Sistemas/SCW/CPublica/CConsolFdo/ResultBuscaParticFdo.aspx?CNPJNome=42133922000117&TpPartic=0&Adm=false&numRandom=225192&SemFrame=',headers=header_get)
我不知道为什么,它似乎无论如何都不起作用,因为当我看到给我带来的结果时,就像我没有发布所需的第一个字段一样。
我究竟做错了什么?
解决方案
推荐阅读
- mongodb - 无法连接到 EC2 上的 MongoDB
- c++ - C++ 将 char* 字符串放入 std::vector 的更好方法
? - typescript - Vuex+Jest 测试因 TypeError 而失败
- python - 循环训练中缺少一批?
- h2o - H2O“输出 - 集群均值”部分未正确报告指标
- html - 在 CSS 中创建叠加层
- visual-c++ - 尝试在 C++ 中打印树(不使用 x)
- excel - 所有工作表中的vba循环texttocolumns
- kotlin - kotlin 控制台应用程序在程序退出之前执行所有异步任务的方法
- c# - 环境变量在 app.config 中被视为字符串