爬虫04-cookie的相关操作

cookie模拟登录人人网

获取登录时的cookie信息,然后模拟登录

from urllib import request
import chardet
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)'
                         ' Chrome/68.0.3440.106 Safari/537.36',
           'Accept-Language': 'zh-CN,zh;q=0.9',
           'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
           'Cache-Control': 'max-age=0',
           'Connection': 'keep-alive',
           'Cookie': 'anonymid=jl4m5fxn-3yrdyq; _r01_=1; _ga=GA1.2.55598029.1534921231; ln_uact=17752558702; ln_hurl=http://head.xiaonei.com/photos/0/0/men_main.gif; depovince=HEN; JSESSIONID=abcr2TE_NKy2ZhDXjMYww; jebe_key=fd550795-812c-4587-bc70-8e3f15107ea7%7C077a3e2b1c00096d5c13732ceee74ce5%7C1534925077691%7C1%7C1536299679609; ick_login=08481884-827c-4c60-b431-03bc7e808af1; first_login_flag=1; wp_fold=0; wp=0; jebecookies=4047de36-5dab-44ec-ad91-07a21a72c724|||||; _de=32B20555AD3784A6BF2D3D01B72FE013; p=e3d71d28d2a54983c9f23fa49425047f2; t=fb2811d9a2c4767edcd48c5922ee28062; societyguester=fb2811d9a2c4767edcd48c5922ee28062; id=966924492; xnsid=4d654f12; ver=7.0; loginfrom=null'}
req = request.Request('https://www.renren.com/', headers=headers)
response = request.urlopen(req)
html = response.read()
charset = chardet.detect(html)['encoding']
print(charset)
print(html.decode(charset))

Python 处 理 Cookie ,一般是通过 cookielib 模块和 urllib 的 request 模块的 HTTPCookieProcessor 处理器类一起使用。

cookielib 模块:主要作用是提供用于存储 cookie 的对象 HTTPCookieProcessor 处理器:主要处理 cookie 对象,并构建 handler 对象。

HTTPCookieProcessor 处理器:主要处理 cookie 对象,并构建 handler 对象

cookielib 库

主要作用是提供用于存储 cookie 的对象

获取cookie的信息保存到文件中

该模块主要的对象有 CookieJar、FileCookieJar、MozillaCookieJar、LWPCookieJar。

CookieJar:管理 HTTP cookie 值、存储 HTTP 请求生成的 cookie、向传出的 HTTP 请求添加 cookie 的对象。整个 cookie 都存储在内存中。

FileCookieJar (filename,delayload=None,policy=None):CookieJar 派生而来,将 cookie 存储到 文件中。filename 是存储 cookie 的文件名。delayload 为 True 时支持延迟访问文件,即只有 在需要时才读取文件或在文件中存储数据。

MozillaCookieJar (filename,delayload=None,policy=None) : 从 FileCookieJar 派 生 而 来 , MozillaCookieJar 实例与 Mozilla 浏览器 cookies.txt 兼容。

LWPCookieJar (filename,delayload=None,policy=None):从 FileCookieJar 派生而来,实例与 libwww-perl 标准的 Set-Cookie3 文件格式兼容。 HTTPCookieProcessor 处理器:处理 cookie 对象,并构建 handler 处理器对象。

from urllib import request
import http.cookiejar

# 构建CookieJar对象保存Cookie
filename = 'cookie.txt'
cookiejar = http.cookiejar.MozillaCookieJar(filename)
# 创建cookie处理器对象 参数是Cookiejar对象
handler = request.HTTPCookieProcessor(cookiejar)
# 构建opener
opener = request.build_opener(handler)
# 创建一个请求
response = opener.open('https://tieba.baidu.com/index.html')
# 保存cookie信息
cookiejar.save()

从文件中获取cookies,作为请求的一部分

猜你喜欢

转载自blog.csdn.net/qwerLoL123456/article/details/82495694
今日推荐