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字典,為什麽用在異步請求上卻不行呢?