python 模拟登陆网站

网站登陆与会话机制(cookie & session)

简单的cookie模拟登陆

什么是cookie

cookie和session是什么(传送门)
其实简单的说就是当用户通过http协议访问一个服务器的时候,这个服务器会将一些Name/Value键值对返回给客户端浏览器,并将这些数据加上一些限制条件。在条件符合时,这个用户下次再访问服务器的时候,数据又被完整的带给服务器。

因为http是一种无状态协议,用户首次访问web站点的时候,服务器对用户一无所知。而Cookie就像是服务器给每个来访问的用户贴的标签,而这些标签就是对来访问的客户端的独有的身份的一个标识,这里就如同每个人的身份证一样,带着你的个人信息。而当一个客户端第一次连接过来的时候,服务端就会给他打一个标签,这里就如同给你发了一个身份证,当你下载带着这个身份证来的时候,服务器就知道你是谁了。所以Cookie是存在客户端的,这里其实就是在你的浏览器中。

Cookie中包含了一个由名字=值(name = value)这样的信息构成的任意列表,通过Set-Cookie或Set-Cookie2 HTTP响应(扩展)首部将其贴到客户端身上。如下图例子所示:
在这里插入图片描述

使用cookie的模拟登陆

cookie的使用方式一般来说有两种:

  1. 直接使用浏览器上已有的cookie(这个方法比较简单,但是每次使用都需要去查看cookie)
  2. 用python模拟登陆之后,将cookie保存在变量中。以下讲解的就是这种方法

话不多说,上方法
首先,利用浏览器自带的抓包工具,来查看登陆网页的数据包。
在这里插入图片描述
这里有个小窍门,如果不知道哪一个URL请求是登陆网页的URL,可以随意输一个账号密码让浏览器报错之后就很容易找出来登陆的URL了。
上图可以直接得到URL和请求方式POST了。一般表单都是通过POST方式进行网页请求的。
在这里插入图片描述
除了URL和请求方式,还需要制作表头header。表头一般需要用到的就是上图框框中的四个。(有些时候甚至只需要User-Agent来掩饰,假装请求是通过浏览器来的)
在这里插入图片描述
最后,需要把上传的表单数据data准备好。
二话不说上代码

    def Brower138(self):
        #登陆验证网站,获取线路
        identifyUrl= self.identifyUrl
        identify = self.identify

        try:
            #获得一个cookieJar实例
            cj = cookiejar.CookieJar()
            #cookieJar作为参数,获得一个opener的实例
            opener=request.build_opener(request.HTTPCookieProcessor(cj))
            #伪装成一个正常的浏览器,避免有些web服务器拒绝访问。
            opener.addheaders = [('User-agent'
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值