當前位置:成語大全網 - 新華字典 - python異步中aiohttp獲取不到正確的Set-cookies值?

python異步中aiohttp獲取不到正確的Set-cookies值?

python異步中aiohttp獲取不到正確的Set-cookies值

這幾天學習了python的異步請求,想修改之前寫的代碼提高請求效率,但遇到壹個包含set-cookie返回的請求無法獲取正確的cookie值

原程序關鍵代碼(單線程)(重點看print()輸出內容):

def enter_study(num, course): ?# 進入每個課群的每個課程記錄每個章節url

global lesson_url ?# 章節

header['Referer'] = re.search(r'http.*?course', qun_course_url[num][course]).group() + 's'

print(session.cookies) ?# 打印當前網站的cookies

print('\n\n\n')

while True:

try:

request = session.get(qun_course_url[num][course], headers=header, timeout=3) ?# 進入課程

print(request.cookies)

print(session.cookies) ?# 打印當前網站的cookies

input()

break

except Exception as e:

print('進入課程學習重試中。。。')

continue

update_time(1)

update_time(2)

temp_list = []

for x in re.findall(r'/courses/YOOC\S*/">', request.text):

temp_list.append('https://xueyuan.yooc.me' + x[:-2]) ?# 該課程有多少章節

lesson_url[num][course] = temp_list123456789101112131415161718192021

運行結果(cookies中間空白處因為涉及用戶信息所以屏蔽了):

修改後的出現問題的代碼(異步)(重點看print()輸出內容):

async def enter_study(num, course, header): ?# 進入每個課群的每個課程記錄每個章節url

async with aiohttp.ClientSession(cookies=cookie) as session:

header['Referer'] = re.search(r'http.*?course', qun_data[num][2][course]).group() + 's'

#打印請求前的cookie記錄

print(session.cookie_jar.filter_cookies())

async with session.get(qun_data[num][2][course], headers=header) as html: ?# 進入課程

update_time(1)

update_time(2)

print('\n\n')

print(html.cookies)#打印Set-cookie信息

print()

#打印請求後的cookie記錄

print(print(session.cookie_jar.filter_cookies()))

if str(html.cookies).find('Set-Cookie') > -1:

save_cookie_record['Set-Cookie'] = html.cookies

rep_text = await html.text(encoding='utf-8')

temp_list = []

for x in re.findall(r'/courses/YOOC\S*/">', rep_text):

temp_list.append('https://xueyuan.yooc.me' + x[:-2]) ?# 該課程有多少章節

qun_data[num][2][course] = temp_list1234567891011121314151617181920

運行結果(請求後返回的set-cookies信息沒有更新):

該程序是用壹個cookie字典來保存cookie值的,需要通過請求後的set-cookie值來更新我的cookie字典,為什麽用在異步請求上卻不行呢?