zoukankan      html  css  js  c++  java
  • 基于cookies模拟登录

    cookies是什么 ?

      cookies是服务器放在用户机器上的一小块信息. cookies用来保存登录信息,这样用户就不用每次从同一台机器访问页面都要再次输入登录信息

    cookie的成分

    名称(必需);(网站不能访问其他域生成的cookie)、路径(将cookie的访问权限控制在服务器中的特定目录)、失效日期(规定cookie何时应该删除,默认下关闭浏览器时就会删除cookie,也可以自己设置删除时间)、安全标志(true还是false)

    如何获取cookies?

      通过burpsuite等抓包工具,或firebug等

    接下来写个模拟登录知乎的demo--

      我先从firebug中获取到的cookies存储到cookies文件中,是一个长字符串.

    #coding:utf-8
    
    import requests
    
    
    def get_cookies():
        with open('cookies','r') as f:
            cookies = {}
            for line in f.read().split(';'):
                name, value = line.strip().split('=',1)     #1代表只分割一次
                cookies[name] = value
            return cookies
    
    s = requests.Session()
    url = 'http://www.zhihu.com/'
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'
    }
    
    req2 = s.get(url, headers=headers, cookies=get_cookies())
    html = req2.content
    
    
    with open('zhihu.html', 'wb') as f1:
        f1.write(html)

    执行demo.py后,用浏览器打开zhihu.html,则显示的为登录后的页面

  • 相关阅读:
    「网络流 24 题」太空飞行计划
    Wannafly挑战赛2D Delete (最短路好题)
    牛客 216 C 小K的疑惑
    Till I Collapse CodeForces
    bzoj 2734 集合悬殊 (状压dp)
    图写成一个类(2)
    写程序的易错点(不定期更新)
    强联通分量之kosaraju算法
    对各种lca算法的理解
    pb_ds的优先队列实现dijkstra
  • 原文地址:https://www.cnblogs.com/Garvey/p/6723797.html
Copyright © 2011-2022 走看看