爬虫04-cookie的相关操作

172 阅读2分钟

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,作为请求的一部分

更多免费技术资料可关注:annalin1203