通过python去爬网站,但是无法获取网站cookies。 10C

1、尝试用python抓取网站里的一个值,页面是login.aspx,首先向页面抓取cookies,但是获取到的结果显示为
<RequestsCookieJar[<Cookie ASP.NET_SessionId=li5evtzfavnsshcvsiwhihyb for 10.23.10.20/>, <Cookie UICulture=ZH-CN for 10.23.10.20/>]>

2、我的步骤是这样:
首先打开登入界面,10.23.10.20/login.aspx:
图片说明

然后点击登入后跳转到新页面,http://10.23.10.20/index.aspx

图片说明

3、我的代码如下:

import requests
session = requests.session()
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36',
'content-type': 'application/json'
}
url = 'http://10.23.10.20/Login.aspx'
data = {
    '__EVENTTARGET':'', 
    '__EVENTARGUMENT':'',
    '__LASTFOCUS':'', 
    '__VIEWSTATE': '/wEPDwUKLTU4MDcwODY1NA9kFgICAw9kFgoCBA8QDxYGHg1EYXRhVGV4dEZpZWxkBQdSZXNOYW1lHg5EYXRhVmFsdWVGaWVsZAUIUGFyYUNvZGUeC18hRGF0YUJvdW5kZ2QQFQMM566A5L2T5Lit5paHBuiLseaWhwznuYHkvZPkuK3mlocVAwVaSC1DTgVFTi1VUwVaSC1ISxQrAwNnZ2cWAWZkAgUPDxYCHgdWaXNpYmxlaGRkAgYPDxYCHwNoZGQCBw8PFgIeBFRleHQFEumqjOivgeeggeW3suemgeeUqGRkAgsPDxYEHghDc3NDbGFzcwUFc3ViYnQeBF8hU0ICAmRkZDv8A1G1UoCThtCFhAOH9WUJNdJM/dRKUFJVTapERgX8',
    '__VIEWSTATEGENERATOR': 'C2EE9ABB',
    'txtUserName': 'admin',
    'txtPSW': '123456',
    'HiddenField1':'', 
    'HiddenField2':'', 
    'UICultureDropDownList': 'ZH-CN',
    'LoginButton':'' 
}
session.post(url, headers=headers, data=data)
cookies = session.cookies
print(cookies)

获取到的结果就是第一步写结果,得到的cookies不对。
我查看登入后index.aspx的resquest headers内容,如下图:
图片说明

个人认为系统的cookies应该是红框里面显示的。

所以不知道是我哪里错误了?取不到正确的cookies。

完整的截图:

图片说明

图片说明

1个回答

<RequestsCookieJar[<Cookie ASP.NET_SessionId=li5evtzfavnsshcvsiwhihyb for 10.23.10.20/>, <Cookie UICulture=ZH-CN for 10.23.10.20/>]>

这个本身没什么问题,说明返回了一个 cookie jar。但是你要的那个 cookie 是 302 的请求回复给你的,你如果跟必问那边说的一样返回的是 500 错误,那当然不会带有你想要的 cookie。所以问题还是为什么你的 Python 请求返回 500 而不是像浏览器里一样返回的 302。

第二张截图你截一个完整的,右边你只截了返回的 header,下面请求的信息你没截全,要看看那边浏览器是怎么传参数的。

ckw4400
ckw4400 回复cat: 加上'content-type': 'application/json,status_code显示200,去掉显示500
8 个月之前 回复
weixin_40292252
cat 这个评论真烂。。不加 json 是 302 吗?还是 500?
8 个月之前 回复
weixin_40292252
cat 回复ckw4400: 我只是猜测需要加 json 哈,其实是 Content-Type: application/x-www-form-urlencoded(默认),所以不需要加 application/json。
8 个月之前 回复
ckw4400
ckw4400 所以问题还是为什么你的 Python 请求返回 500 而不是像浏览器里一样返回的 302:这个是因为你说需要在headers加上'content-type': 'application/json',加上后,就可以返回cookie jar。完整的截图我加在问题的最后面了。
8 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问