DaggerRoo 发表于 2022-8-16 21:17:56

返回cookie为空

import requests

#会话
session = requests.session()

#1.登录
url = 'http://api.cbecbe.com/api/student/login'
data = {}
data['username'] = '15234855683'
data['password'] = '123456'

session.post(url, data = data)

#2.拿数据
res = session.get('http://api.cbecbe.com/gameapi/international/gamemarket/findUserGoods?refGameRoomId=233&projectVersion=4&type=1')
print(res.text)


刚学爬虫的小白,对cookie这里还不是很懂。参照教程用自己参加比赛的网址试了试,结果返回的cookie为空,然后返回的res也是HTTP401。

ZhKQYu 发表于 2022-8-16 21:47:36

加个请求头就行
headers = {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
    'Cache-Control': 'max-age=0',
    'Connection': 'keep-alive',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.81 Safari/537.36 Edg/104.0.1293.54',
}
下面是返回的内容
{"key":null,"success":true,"message":"操作成功!","code":200,"result":{"access_token":"200900f7-35a5-46c5-8d05-87d8315f21a8","token_type":"bearer","refresh_token":"839a2195-1e86-4e86-b143-d04de4fb9946","expires_in":2591999,"scope":"all","userInfo":{"password":"$2a$10$kToKVJxECoJ00lfxrBGGZOrMlambDmNuFluy09urTXYUUy.Wbusni","username":"15234855683","authorities":[],"accountNonExpired":true,"accountNonLocked":true,"credentialsNonExpired":true,"enabled":true,"id":"11969","refClassId":null,"realname":"国贸技能小分队","salt":null,"avatar":null,"birthday":null,"sex":1,"email":null,"phone":"15234855683","orgCode":null,"status":null,"delFlag":null,"createBy":null,"createTime":"2022-07-03 21:34:42","updateBy":null,"updateTime":"2022-08-16 16:31:57","activitiSync":null,"loginType":"STUDENT"}},"timestamp":1660657604281}

ZhKQYu 发表于 2022-8-16 21:48:21

import requests

url = 'http://api.cbecbe.com/api/student/login'
data = {}
data['username'] = '15234855683'
data['password'] = '123456'
headers = {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
    'Cache-Control': 'max-age=0',
    'Connection': 'keep-alive',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.81 Safari/537.36 Edg/104.0.1293.54',
}

res = requests.post(url, data = data, headers = headers)
print(res.text)

DaggerRoo 发表于 2022-8-16 21:55:39

ZhKQYu 发表于 2022-8-16 21:48


我想爬取的不是登录后返回的内容,而是登录之后另一个url里的内容。↓
http://api.cbecbe.com/gameapi/international/gamemarket/findUserGoods?refGameRoomId=233&projectVersion=4&type=1
不过还是感谢大佬帮忙

ZhKQYu 发表于 2022-8-16 21:58:33

本帖最后由 ZhKQYu 于 2022-8-16 22:00 编辑

DaggerRoo 发表于 2022-8-16 21:55
我想爬取的不是登录后返回的内容,而是登录之后另一个url里的内容。↓
http://api.cbecbe.com/gameapi/i ...

是通过cookies登录吗

DaggerRoo 发表于 2022-8-16 22:02:08

ZhKQYu 发表于 2022-8-16 21:58
是通过cookies登录吗

我想通过cookie登录,可是我“踩点”得到的cookie是空的,这就是我想问的问题{:10_243:}

DaggerRoo 发表于 2022-8-16 22:05:28

本帖最后由 DaggerRoo 于 2022-8-16 22:06 编辑

1

suchocolate 发表于 2022-8-17 01:04:28

这个url没有返回set-cookie,所以print cookie为空。

只是想看看cookie长什么样,换成百度就行:


DaggerRoo 发表于 2022-8-17 09:09:37

suchocolate 发表于 2022-8-17 01:04
这个url没有返回set-cookie,所以print cookie为空。

只是想看看cookie长什么样,换成百度就行:

那请问要怎么爬取cookie为空但又需要登录的URL呢{:10_254:}

suchocolate 发表于 2022-8-17 10:12:11

DaggerRoo 发表于 2022-8-17 09:09
那请问要怎么爬取cookie为空但又需要登录的URL呢

如果网站想用cookie保持session状态,就会给你发set-cookie或者记录你上报的cookie(之前拿到的)。
但你这个url就没发set-cookie,也没说接受你的cookie,返回200什么的,就说明这个url不是返回cookie的页面,或者网站故障。建议你直接用百度研究cookie。

suchocolate 发表于 2022-8-17 10:26:47

https://github.com/Python3WebSpider/Python3WebSpider
看2.4和3.2,讲cookie和request 用cookie的。

dolly_yos2 发表于 2022-8-17 10:30:36

DaggerRoo 发表于 2022-8-17 09:09
那请问要怎么爬取cookie为空但又需要登录的URL呢

没看网页,只是提醒一下 cookie 不是唯一的传递认证信息的方式,请求头里其他字段也可以放认证信息,可以确认一下。

DaggerRoo 发表于 2022-8-17 10:47:31

suchocolate 发表于 2022-8-17 10:26
https://github.com/Python3WebSpider/Python3WebSpider
看2.4和3.2,讲cookie和request 用cookie的。

谢谢大佬指点!{:10_298:}

DaggerRoo 发表于 2022-8-17 10:48:06

本帖最后由 DaggerRoo 于 2022-8-17 10:53 编辑

dolly_yos2 发表于 2022-8-17 10:30
没看网页,只是提醒一下 cookie 不是唯一的传递认证信息的方式,请求头里其他字段也可以放认证信息,可以 ...

感谢大佬,这句话真让我茅塞顿开了!{:10_298:}

dolly_yos2 发表于 2022-8-17 20:29:05

本帖最后由 dolly_yos2 于 2022-8-17 20:32 编辑

DaggerRoo 发表于 2022-8-17 10:48
感谢大佬,这句话真让我茅塞顿开了!

好耶 &#127926;~   <--- 居然无法显示 (;`д`)ゞ
页: [1]
查看完整版本: 返回cookie为空