cookiejar获取cookie def login_cookie(self,username,pwd,formhash): LOGIN_URL = 'https://www.yaozh.com like Gecko) Chrome/87.0.4280.88 Safari/537.36', 'X-Requested-With': 'XMLHttpRequest' } cookiejar = CookieJar() handler = request.HTTPCookieProcessor(cookiejar) opener = urllib.request.build_opener e.reason) return '' if response.status == 200: cookie_list = [] for i in cookiejar
简介 有时候我们需要爬一些需要登录才能进入网页,这个时候就要用到cookie相关的一些模块来操作了 内置的http包里包含了cookie相关的一些模块,通过她们我们可以自动使用cookie CookieJar 管理储存cookie,像传出的http请求添加cookie cookie存储在内存中,CookieJar示例回收后cookie将自动消失 FileCookieJar 是CookieJar的字类 cookie 是FileCookieJar的子类 与libwww-perl标准兼容 案例 访问登录后的人人网主页 from urllib import request,parse from http import cookiejar # 创建cookiejar实例对象 cookie = cookiejar.CookieJar() # 根据创建的cookie生成cookie的管理器 cookie_handle = request.HTTPCookieProcessor
二、读取和使用cookie.txt文件 1、curl的cookie文件的读取和使用(MozillaCookieJar) import requests import http.cookiejar load_cookiejar = http.cookiejar.MozillaCookieJar() load_cookiejar.load('cookies.txt', ignore_discard=True, ignore_expires =True) load_cookies = requests.utils.dict_from_cookiejar(load_cookiejar) cookies = requests.utils.cookiejar_from_dict load_cookiejar = http.cookiejar.LWPCookieJar() load_cookiejar.load('cookies.txt', ignore_discard=True , ignore_expires=True) load_cookies = requests.utils.dict_from_cookiejar(load_cookiejar) cookies = requests.utils.cookiejar_from_dict
cookie持久化 CookieJarImpl cookieJar = new CookieJarImpl(new PersistentCookieStore(YUtils.getApplication ())); OkHttpClient okHttpClient = new OkHttpClient.Builder() .cookieJar(cookieJar cookieJar = OkHttpUtils.getInstance().getOkHttpClient().cookieJar(); String myCookie = ""; if (cookieJar instanceof CookieJarImpl) { CookieStore cookieStore = ((CookieJarImpl) cookieJar cookieJar = OkHttpUtils.getInstance().getOkHttpClient().cookieJar(); ((CookieJarImpl) cookieJar
方法可以将cookiejar对象转换成一个dict对象 cookies = requests.utils.dict_from_cookiejar(session.cookies) print 'cookies : ', cookies # 结果: # cookies: {} cook1 = {'a': '1', 'b': '2'} # requests.utils.cookiejar_from_dict 方法可以将一个字典转换成cookiejar对象并添加到当前session的cookies中 session.cookies = requests.utils.cookiejar_from_dict(cook1 ) cookies = requests.utils.dict_from_cookiejar(session.cookies) print 'cookies: ', cookies # 结果: cookies添加新的cookie requests.utils.add_dict_to_cookiejar(session.cookies, cook2) cookies = requests.utils.dict_from_cookiejar
管理器中查找是否有这个cookieJar,scrapy的cookieJar管理器使用的是self.jars=defaultdict(CookieJar)。 如果没有携带cookiejar属性,则返回默认的CookieJar。 scrapy.http.cookies.CookieJar通过在属性中设置self.jar=http.cookiejar.CookieJar,来实现CookieJar大部分的功能。 ("cookiejar") jar = self.jars[cookiejarkey] 这段代码的时候,实际上并没有拿到新的CookieJar,拿到的是那个默认的CookieJar,他在defaultdict 中的key是None,所以虽然我们没有给request.cookies赋值,但是实际上add_cookie_header方法,将cookieJar中保存的cookie又给我们包装到了header中。
#保存 cookie 到变量 import urllib.request import http.cookiejar cookie = http.cookiejar.CookieJar() handler cookie: print('%s = %s' % (item.name,item.value)) #保存 cookie 到文件 import urllib.request import http.cookiejar cookie_file = 'E:/mypy/cookie.txt' cookie = http.cookiejar.MozillaCookieJar(cookie_file) handler = urllib.request.HTTPCookieProcessor cookie: print('%s = %s' % (item.name,item.value)) #从文件中读取 cookie 访问 import urllib.request import http.cookiejar cookie_file = 'E:/mypy/cookie.txt' cookie = http.cookiejar.MozillaCookieJar() cookie.load(cookie_file
先贴代码,还是以爬取CSDN的cookie为例子: import http.cookiejar,urllib.request #导入要用到的cookiejar,request coikie=http.cookiejar.CookieJar ()#声明CookieJar这个对象 hanlder=urllib.request.HTTPCookieProcessor(coikie)#利用HTTPCookieProcessor创建handler
import CookieJar headers = ({ “User-Agent”: ” Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36″}) def get_opener(): # 创建一个cookiejar cookiejar = CookieJar() # 使用cookiejar创建一个HTTPCookieProcessor对象 handler = request.HTTPCookieProcessor(cookiejar import MozillaCookieJar cookiejar = MozillaCookieJar(“cookie.txt”) handler = request.HTTPCookieProcessor (cookiejar) opener = request.build_opener(handler) resp=opener.open(“https://www.baidu.com/”) cookiejar.save
import http.cookiejar, urllib.request cookie = http.cookiejar.CookieJar() #创建cookiejar对象 handler = urllib.request.HTTPCookieProcessor http.cookiejar.MozillaCookieJar()方式 import http.cookiejar, urllib.request filename = "cookie.txt" cookie ()方式 import http.cookiejar, urllib.request filename = 'cookie.txt' cookie = http.cookiejar.LWPCookieJar http.cookiejar.MozillaCookieJar()方式 import http.cookiejar, urllib.request cookie = http.cookiejar.MozillaCookieJar ()方式 import http.cookiejar, urllib.request cookie = http.cookiejar.LWPCookieJar() cookie.load('cookie.txt
在HTTP包中,提供了cookiejar模块,用于提供对Cookie的支持。 ? http.cookiejar功能强大,我们可以利用本模块的CookieJar类的对象来捕获cookie并在后续连接请求时重新发送,比如可以实现模拟登录功能。 urllib import request from http import cookiejar if __name__ == '__main__': #声明一个CookieJar对象实例来保存 cookie cookie = cookiejar.CookieJar() #利用urllib.request库的HTTPCookieProcessor对象来创建cookie处理器,也就 对象实例来保存cookie cookie = cookiejar.CookieJar() #利用urllib.request库的HTTPCookieProcessor对象来创建cookie
urllib.urlencode(data) # 发送头信息 headers ={ "Host":"a.test.com", "Referer": "http://a.test.com" } # 初始化一个CookieJar 来处理Cookie cookieJar=cookielib.CookieJar() # 实例化一个全局opener opener=urllib2.build_opener(urllib2.HTTPCookieProcessor (cookieJar)) # 获取cookie req=urllib2.Request(auth_url,post_data,headers) result = opener.open(req) # 访问主页 来处理Cookie cookieJar=cookielib.CookieJar() # 实例化一个全局opener opener=urllib2.build_opener(urllib2.HTTPCookieProcessor (cookieJar)) req = urllib2.Request(auth_url, post_data, headers) req.add_header('User-Agent', \ 'Mozilla
上一次响应cookie的response对象,其他参数,cookie、url、表单内容等 yield Request()可以将一个新的请求返回给爬虫执行 在发送请求时cookie的操作, meta={'cookiejar ':1}表示开启cookie记录,首次请求时写在Request()里 meta={'cookiejar':response.meta'cookiejar'}表示使用上一次response的cookie, 写在FormRequest.from_response()里post授权 meta={'cookiejar':True}表示使用授权后的cookie访问需要登录查看的页面 获取Scrapy框架Cookies 使其得到cookie,设置回调函数""" return [Request('http://edu.iqianyue.com/index_user_login.html',meta={'cookiejar ://edu.iqianyue.com/index_user_login', #真实post地址 meta={'cookiejar
Cookies Cookies的处理就需要相关的Handler了 实例:怎么获取网站的Cookies 代码如下: import http.cookiejar import urllib.request cookie = http.cookiejar.CookieJar() handler = urllib.request.HTTPCookieProcessor(cookie) opener = urllib.request.build_opener 代码如下: import http.cookiejar import urllib.request filename = 'cookies.txt' cookie = http.cookiejar.MozillaCookieJar (filename),代码如下: import http.cookiejar import urllib.request filename = 'cookies.txt' cookie = http.cookiejar.LWPCookieJar 下面以LWPCookieJar格式为例来看一下: import http.cookiejar import urllib.request cookie = http.cookiejar.LWPCookieJar
BridgeInterceptor 拦截器的完整代码 public final class BridgeInterceptor implements Interceptor { private final CookieJar cookieJar; public BridgeInterceptor(CookieJar cookieJar) { this.cookieJar = cookieJar; } transparentGzip = true; requestBuilder.header("Accept-Encoding", "gzip"); } List<Cookie> cookies = cookieJar.loadForRequest Response networkResponse = chain.proceed(requestBuilder.build()); HttpHeaders.receiveHeaders(cookieJar
Cookielib模块非常强大,我们可以利用本模块的CookieJar类的对象来捕获cookie并在后续连接请求时重新发送,比如可以实现模拟登录功能。 该模块主要的对象有CookieJar、FileCookieJar、MozillaCookieJar、LWPCookieJar。 1)获取Cookie,并保存到CookieJar()对象中 # urllib2_cookielibtest1.py import urllib2 import cookielib # 构建一个CookieJar 对象实例来保存cookie cookiejar = cookielib.CookieJar() # 使用HTTPCookieProcessor()来创建cookie处理器对象,参数为CookieJar ()对象 handler = urllib2.HTTPCookieProcessor(cookiejar) # 通过 build_opener() 来构建opener opener = urllib2
lang=en',headers=self.headers,callback=self.start_login, meta={'cookiejar': 1},) # meta={'cookiejar' lang=en',headers=self.headers,callback=self.capture,method='PUT', meta={'cookiejar': response.meta['cookiejar ': response.meta['cookiejar']},) 这个函数有点小问题就是每次其实都会请求到验证码,所以有时候不需要验证码也还是要输入,要改进的话需要用正则去匹配响应的TRUE。 ': response.meta['cookiejar']}, ) COOKIES_ENABLED = True 在setting.py中修改这个。 ': response.meta['cookiejar']}, callback=self.parse_people, errback=self.parse_err
二.将cookie存本地 1.基于session(推荐使用代码少哈哈) import requests from http import cookiejar session =requests.session () session.cookies = cookiejar.LWPCookieJar() #MozillaCookieJar或LWPCookieJar。 https://www.cnblogs.com/fu-yong/p/9032902.html 第一次访问 from urllib import request,parse from http import cookiejar # 创建filecookiejar实例对象 # 它需要一个参数,既cookie保存的位置 filename = 'cookie.txt' cookie = cookiejar.FileCookieJar # 创建cookiejar实例对象 cookie = cookiejar.FileCookieJar() # 读取已经保存的cookie文件 # 读取之后,就无需登录,直接访问主页即可 cookie.load
学习: urllib的cookie相关的类 在python2中cookie的类叫做:import cookielib 在python3中cookie的类叫做:import http.cookiejar (url) cookieh = http.cookiejar.CookieJar() #保存了cookie对象 handler = urllib.request.HTTPCookieProcessor .com/>, <Cookie v_pg=normal for www.hao123.com/>]> 将Cookie保存到文件中: import urllib.request import http.cookiejar Cookie从文件中读取cookie信息并访问: import urllib.request import http.cookiejar cookie_filename = 'cookie.txt' cookie = http.cookiejar.MozillaCookieJar(cookie_filename) cookie.load(cookie_filename, ignore_discard=True,
2 登录 登录代码: import urllib2 from cookielib import CookieJar loginUrl = 'http://120.55.151.61/V2/ password=A55B48BB75C79200379D82A18C5F47D6&channel=MXMarket&phoneModel=M040&versionNumber=7.2.1&' cookieJar = CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar)) req = urllib2 password=A55B48BB75C79200379D82A18C5F47D6&channel=MXMarket&phoneModel=M040&versionNumber=7.2.1&' cookieJar = CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar)) req = urllib2