由于好多网页登陆都需要进行图片认证,所以找了一个不需要认证的网站-曲谱论坛 该网站登陆后会弹出一个提示框写有即将跳转,稍作几秒才会跳转,但请求指挥获取最开始的页面信息,并不会获取跳转之后的,所以需要再次请求 方法主要为:requests.session(),MozillaCookieJar() 前者用来维持cookie和进行请求,后者用来将cookie存为文件并读取 import requests from http.cookiejar import MozillaCookieJar def get_cookie(): url = 'https://bbs.qupu123.com/member.php?mod=logging&action=login&loginsubmit=yes&handlekey=login&loginhash=Ll2Cf&inajax=1' url2 = 'https://bbs.qupu123.com/forum.php' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.88 Safari/537.36' } data = { 'username': '', 'password': '' } session = requests.session() #to creat a new session session.cookies = MozillaCookieJar() #to change value of cookie from the session to Mozialla resp = session.post(url, headers=headers, data=data) # session.cookies.save(filename='cookies_txt1',ignore_expires=True,ignore_discard=True) #because type of cookie comingfrom the session has become Mozilla,so it has method of 'save'. #we can save cookie comingfrom session and being got from url asking for #登录之后会出现一个即将跳转的弹框,而post的请求只能获取该情况下数据,并不会等待跳转之后再获取,所以还需要在请求一次 def use_cookie1(): #url = 'https://bbs.qupu123.com/space-uid-543113.html' url = 'https://bbs.qupu123.com/forum.php' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.88 Safari/537.36' } cookiejar = MozillaCookieJar() cookiejar.load('cookies_txt1', ignore_discard=True, ignore_expires=True) #loading cookie from cookies.txt and being saved in cookiejar session = requests.session() session.cookies = cookiejar #transporting cookie from cookiejar to the session resp = session.get(url,headers=headers) session.cookies.save(filename='cookies_txt2',ignore_discard=True,ignore_expires=True) #print(resp.text) def use_cookie(): url = 'https://bbs.qupu123.com/space-uid-543113.html' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.88 Safari/537.36' } cookiejar = MozillaCookieJar() cookiejar.load('cookies_txt2',ignore_expires=True,ignore_discard=True) session = requests.session() session.cookies = cookiejar resp = session.get(url,headers=headers) print(resp.text) if __name__ == '__main__': get_cookie() use_cookie1() use_cookie()
02-requests获取cookie练习
最新推荐文章于 2024-08-13 18:29:56 发布