把玩之python爬虫cookie篇

原文链接:静觅 » Python爬虫入门六之Cookie的使用

为什么要使用cookie?

        cookie是指网站为了辨别用户身份、进行session跟踪而存储在用户本地终端上的数据(通常是经过加密的)
        如果你未登录,想获取某个页面的内容是不被允许的。我们可以利用urllib2保存登录的cookie信息,然后获取页面内容。
        1,Opener
                当你获取一个url你使用一个opener
        2,Cookielib模块
                此模块的主要功能是提供可存储的cookie的对象,以便于与urllib2模块配合使用来访问internet资源。我们可以使用CookieJar类的对象来捕捉cookie并在后续链接请求时重新发送。该模块的对象主要有:CookieJar、FileCookieJar、MozillaCookieJar、LWPCookieJar。
        1),获取cookie保存到变量
        import urllib2
        import cookielib

        #声明一个CookieJar对象实例来保存cookie
        cookie=cookielib.CookieJar()
        #利用urllib2的HTTPCookieProcssor对象来创建cookie处理器
        handler=urllib2.HTTPCookieProcessor(cookie)
        #通过handler来构建opener
        opener=urllib2.build_opener(handler)
        response=opener.open("http://...")
        for item in cookie:
                print "name="+item.name
                print "value="+item.value


        2),保存cookie到文件
 
       import cookielib
        import urllib2

        #设置保存cookie的文件,统计目录下的cookie.txt
        filename="cookie.txt"
        #声明一个MozillaCookieJar对象来保存cookie并写入文件
        cookie=cookielib.MozillaCookieJar(filename)
        handler=urllib2.HTTPCookieProcessor(cookie)
        opener=urllib2.build_opener(handler)
        response=opener.open("http://....")
        #保存cookie到文件,ignore_discard=True表示即使cookie将被丢弃也将它保存下来,ignore_expires=True表示如果以存在则被覆盖写入
        cookie.save(ignore_discard=True,ignore_expires=True)

        3),从保存的文件中获取cookie并访问
        如第二步,已经将cookie保存到文件中,以后使用:
  
     import urllib2
        import cookielib

        cookie=cookielib.MozillaCookieJar()
        cookie.load("cookie.txt",ignore_discard=True,ignore_expires=True)
        request=urllib2.Request("http://...")
        opener=opener.open(requst)
        print response.read()



        4),利用cookie模拟网站登录
  
     import urllib2
        import urllib
        import cookielib

        filename="cookie.txt"
        cookie=cookielib.MozillaCookieJar(filename)
        handler=urllib2.HTTPCookieProcessor(cookie)
        opener=urllib2.build_opener(handler)

        url="http://..."
        values={"username":"bob","password":"123"}
        data=urllib2.encode(values)
        user-agent="Mozilla4.0...."
        headers={"User-Agent":user-agent}
        request=urllib2.Request(url,data,headers)
        response=opener.open(request)
        cookie.save(ignore_discard=True,ignore_expires=True)
        nexturl="http://....."
        request=urllib2.Request(nexturl)
        result=opener.open(requst)
        print result.read()




以上为:
创建一个带有cookie的opener,在访问登录的URL时,将登录后的cookie保存下来,然后利用这个cookie来访问其他网址。




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值