为什么要获取cookie?
因为有的页面爬取的时候,需要登录后才能爬,比如知乎,如何判断一个页面是否已经登录,通过判断是否含有cookies就可以,我们获取到cookie后就可以携带cookie来访问需要登录后的页面了。
方式一使用session
这里的session并不是django中的session,而是requests中的session
importrequests
url= 'https://www.processon.com/login'login_email= '283867@qq.com'login_password= 'ZZZ0'
#创建一个session,作用会自动保存cookie
session =requests.session()
data={'login_email': login_email,'login_password': login_password
}#使用session发起post请求来获取登录后的cookie,cookie已经存在session中
response = session.post(url = url,data=data)#用session给个人主页发送请求,因为session中已经有cookie了
index_url = 'https://www.processon.com/diagrams'index_page= session.get(url=index_url).textprint(index_page)
把cookie保存在本地,并判断用户是否已经登录
importrequestsfrom http importcookiejar#创建一个session,作用会自动保存cookie
session =requests.session()#指定cookie保存的路径
session.cookies = cookiejar.LWPCookieJar(filename="cookies.txt")try:
session.cookies.load(ignore_discard=True) #加载cookie文件,ignore_discard = True,即使cookie被抛弃,也要保存下来
except:print('cookie未能加载')deflogin_save_cookie():"""登录并保存cookie到本地
:return:"""url= 'https://www.processon.com/login'login_email= '*****@qq.com'login_password