这里我用的是第三方库requests。
有两种思路:
一、访问过后直接保存cookie到代码中;
二、开启一个session,将cookie保存到session中。
这两种都可以将cookie保存,并在接下来的访问中不需要再验证cookie。
一、
import requests
from requests.cookies import RequestsCookieJar
class Spider(object):
def __init__(self):
self.cookies = requests.cookies.RequestsCookieJar() # 创建RequestsCookieJar对象
def crawl(self, url, method, post_data):
response = requests.request(method, url, data=post_data) # 构造request对象,返回response,传递cookie
self.cookies.update(response.cookies) # 保存cookie
二、
import requests
from requests.cookies import RequestsCookieJar
class Spider(object):
def __init__(self):
self.session = requests.Session() # 开启一个会话
self.cookies = requests.cookies.RequestsCookieJar() # 创建一个ReuqestsCookiesJar对象
def crawl(self, method, url, post_data):
response = requests.request(method, url, data=post_data) # 构造request对象返回response
self.cookies.set(response.cookies) # 将会话保存到RequestsCookieJar中
self.session.cookies.update(self.cookies) # 将cookie保存到session中