如何使用Python中的请求登录?

2024-05-26 04:23:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从https://creis.fang.com/获取数据。在

但是,我需要先登录页面。在

我需要填写4个值。在

我试图使用requests,但失败了。在

这是我的代码:

import requests
url = 'https://creis.fang.com/'
s = requests.Session()
data ={'cnname': 'myname', 'cnotp':'abc', 'cntempcode':'123', 'cnproducttitle':'企业版'}
r = s.post(url=url, data=data)

你能帮我吗?在

谢谢。在

enter image description here

enter image description hereenter image description hereenter image description here


Tags: 代码httpsimportcomurldatasession页面
2条回答

首先,登录请求和您拥有的代码是不同的。在

发送的密码使用RSA加密。我不确定它是否在每次请求时都更改,或者加密的逻辑是固定的。所以你需要确保发送的密码是加密的

import requests

url = 'https://creis.fang.com/'
s = requests.Session()
s.get(url)

data = {
    "sloginID": "test",
    "sPassword": "8dfddc7151749b91cedc965dec30295f34f5ab3f46679d3fa8c8d917474d162c63adcc6c9c0ea42f4cfc3fdf06bf98e4a9225f6fb8690874a028f17f2f01726259b4a32fc49e3e287a7832b6799916531603d06763b8309ca144f8c6828a9273bd4612d6b759193ee69c3608e3072f914e9af05ab2ea4bf1ab12816995f51711",
    "sHID":"",
    "sTempCode":"",
    "product": "sfangdata", 
    "rsakey":"",
    "l": "cn"
}

res = s.post("https://creis.fang.com/login/login/?r=0.6500200817926693", data=data)

print (res.json())

在那之后,我得到了错误

^{pr2}$

因为我没有正确的证件

在这种情况下,在浏览器发送请求之前,密码是用javascript加密的。在

在这一点上,我建议使用类似于https://selenium-python.readthedocs.io/的东西来代替请求。在

这样您就可以避免对javascript部分进行反向工程,并且能够轻松登录。在

如果您需要继续处理请求,可以尝试检索selenium生成的cookie并继续处理请求,但是我建议您将selenium用于所有事情。在

相关问题 更多 >