zhaoqingp 发表于 2021-8-18 21:35

小白请教各路大神python获取数据的问题

本帖最后由 zhaoqingp 于 2021-8-18 22:43 编辑

我是小白,请教各路大神python获取数据的问题,我想获取刷题神器群组里的题库,用python登录成功但是没有返回cookie,哪位大神帮我看看代码,谢谢了

import requests

session = requests.session()

url = 'http://stsqapi.tibosi.com/user/login'
data = {
'userNumber': '135XXXXXX',
'passWord': '84cc8941393cc667b804f1d603b2561b',
'client': '0'
}


headers={
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.73',
'origin': 'http://www.shuatishenqi.com'
}

resp = session.post(url, data=data, headers=headers )
resp.encoding = "utf-8"

print(resp.cookies)

涛之雨 发表于 2021-8-18 22:52

你那个都没登录成功啊。。。
至少我这里显示你那个post后获取的数据是不正确的
这是我写的,可以参考一下

import requests
url = "https://stsqapi.tibosi.com/user/login"
data = {"userNumber":"手机号","passWord":"84cc8941393cc667b804f1d603b2561b","client":0}
headers= { "content-type": "application/x-www-form-urlencoded; charset=UTF-8" }
session = requests.Session()
res = session.post(url=url,data=data, headers=headers)
print(res.text)

截图对比:



还有注意保护个人隐私

zhaoqingp 发表于 2021-8-18 22:56

涛之雨 发表于 2021-8-18 22:52
你那个都没登录成功啊。。。
至少我这里显示你那个post后获取的数据是不正确的
这是我写的,可以参考一下 ...

谢谢老师,我看下,刚才没有权限私聊你哈哈哈

zhaoqingp 发表于 2021-8-18 23:23

C:\Users\Administrator>python
Python 3.8.10 (tags/v3.8.10:3d8993a, May3 2021, 11:48:03) on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
>>> url = "http://stsqapi.tibosi.com/user/login"
>>> data = {"userNumber":"135XXXXX","passWord":"84cc8941393cc667b804f1d603b2561b","client":0}
>>> headers={"content-type":"application/x-www-form-urlencoded; charset=UTF-8"}
>>> session = requests.Session()
>>> res = session.post(url=url,data=data,headers=headers)
>>> print(res.text)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot GET /user/login</pre>
</body>
</html>

zhaoqingp 发表于 2021-8-18 23:24

怎么还是不成功啊?:lol

ShiratoriAira 发表于 2021-8-19 01:12

把 `http://` 改成 `https://`



```python
url = 'https://stsqapi.tibosi.com/user/login'
```

因为访问这个http页面会被HTTP 301 Moved Permanently到对应的https上

```POST http://stsqapi.tibosi.com/user/login```
被 301 跳转变成
```GET https://stsqapi.tibosi.com/user/login```
导致POST data没发出去

zhaoqingp 发表于 2021-8-19 08:19

ShiratoriAira 发表于 2021-8-19 01:12
把 `http://` 改成 `https://`




谢谢两位老师,我这边显示登录成功了,我请再请教下为什么登录成功,但是返回的cookies为空啊,是不是我找的接口url不对

Loker 发表于 2021-8-19 09:19

我觉得你的目标是题库,就不要把现在的工作重心放到登陆获取cookie,可以先研究获取题库的api之类的。

可以登录后先找到获取题库的api,然后F12找到你自己的cookie,把cookie写死。

zhaoqingp 发表于 2021-8-19 09:30

Loker 发表于 2021-8-19 09:19
我觉得你的目标是题库,就不要把现在的工作重心放到登陆获取cookie,可以先研究获取题库的api之类的。

...

好的,谢谢您,我本来还想高级一点来的,但我是个小白哈哈哈,我试试直接写死获取题库:lol

ShiratoriAira 发表于 2021-8-19 09:30

zhaoqingp 发表于 2021-8-19 08:19
谢谢两位老师,我这边显示登录成功了,我请再请教下为什么登录成功,但是返回的cookies为空啊,是不是我 ...

这个API不依赖cookie保持后续的登陆状态,而是从resp.text获得token(本例中应该是那个guid),每次操作带上token来判断用户。
页: [1] 2
查看完整版本: 小白请教各路大神python获取数据的问题