cookie

Cookie 是指某些网站服务器为了辨别用户身份和进行Session跟踪,而储存在用户浏览器上的文本文件,Cookie可以保持登录信息到用户下次与服务器的会话。/p>

cookie如何工作

当你第一次访问某个网站的时候,服务器会给你颁发一个特定的cookie,之后你每次访问这个站点,你发送的请求头里都会带上相应的cookie,这样服务器便知道这俩请求是同一个客户发送的。

白话:登录后服务会生成一个cookie每次访问这个网站时浏览器都会带上这个cookie,就会自动登录账号

示例网站:https://www.douban.com/

方法一

登录

使用浏览器的抓包找到豆瓣网的登录接口,利用requests模块post提交参数

获取登录cookies

使用cookies登录豆瓣网

import requests
from requests.cookies import RequestsCookieJar #豆瓣登录地址
url2 = 'https://www.douban.com'
url = 'https://accounts.douban.com/j/mobile/login/basic' data = {
#未知
'ck': '',
#账号
'name': '185********',
#密码
'password': '*********',
#是否下次自动登录
'remember': True,
#未知
'ticket': ''
}
r = requests.post(url, data=data)
#登录cookie
c = r.cookies.get_dict()
r2 = requests.get(url2, cookies=c)
#打印登录后的网页,如显示自己的用户名才登陆成功
print(r2.text)

使用cookies获取登录后的界面

方法二

使用requests里的session对象,这个方法能够帮我们在跨请求中保持一些参数,而且所有请求之间保持一个cookies

session方法

方法三

使用selenium包中webdriver(网页自动化测试)登录输入账号密码,登录后获取cookies

import requests
from selenium import webdriver #豆瓣登录地址
# url_address = 'https://accounts.douban.com/j/mobile/login/basic'
url = 'https://www.douban.com' chrome = webdriver.Chrome('F:/Program Files (x86)/webdriver/chromedriver.exe')
chrome.get(url)
#切换到登录界面的html
chrome.switch_to.frame(0)
#使用xpath获取到账号密码登录并点击
chrome.find_element_by_xpath('//li[@class="account-tab-account"]').click()
#使用xpath获取到账号输入框并输入账号
chrome.find_element_by_xpath('//input[@id="username"]').send_keys('185********')
#使用xpath获取密码输入框并输入密码
chrome.find_element_by_xpath('//input[@id="password"]').send_keys('********')
#点击登录按钮
chrome.find_element_by_xpath('//div[@class="account-form-field-submit "]').click()
#接收cookies并打印
cookies = chrome.get_cookies()
print(cookies)

webdriver

selenium

三种获取利用cookies登录方式

1. 前两种需要分析登录接口,比较麻烦,第三种获取登录cookies比较简单

2. 能获取到登录cookies之后尽量少调试,调试多了账号容易被锁定,这里就可以把一次登录的cookies保存到文件,就可以不用每次调试就重新获取一次cookies

把获取到的cookies保存到文件里

登录cookies的更多相关文章

  1. 23.模拟登录cookies请求速询网站数据

    采集速询网站数据: 网站地址:http://www.suxun0752.com/index.html 网站是需要账号登录才给返回信息的,我这里是直接拿的登录后的cookies请求的数据,cookies ...

  2. python Post 登录 cookies 和session

    def post_name(): print('\npost name') # http://pythonscraping.com/pages/files/form.html data = {'fir ...

  3. phpcms免登录cookies设置方案

    PHPCMS的SESSION时间长一些的解决办法修改两个文件: phpsso_server/caches/configs/system.php里的 'session_ttl' => 999999 ...

  4. 构建NetCore应用框架之实战篇(七):BitAdminCore框架登录功能源码解读

    本篇承接上篇内容,如果你不小心点击进来,建议从第一篇开始完整阅读,文章内容继承性连贯性. 构建NetCore应用框架之实战篇系列 一.简介 1.登录功能完成后,框架的雏形已经形成,有必要进行复习. 2 ...

  5. day58_9_24多对多建表手动,form组件(判断类型),cookies和session

    一.多对多建表关系之手动添加. 1.全自动 像之前讲过的一样,我们可以通过manytomanyField的字段来建立多对多关系: class Book(models.Model): title = m ...

  6. selenium获取cookies并持久化登陆

    selenium获取cookies并持久化登陆 需求背景: ​ 这几天需要写一个接口,用来批量上传数据,最开始考虑的是 UI 自动化,然后选值的时候自动化难以判别,最终选择 接口 自动化. ​ 然后操 ...

  7. Javaweb 第7天 Servlet课程

    Servlet课程 三日大纲 ● 网络概念,专业术语 ● Tomcat使用,发布网站,使用Myeclispe发布网站(搭建环境) ● 编写Servlet,Servlet生命周期 ● 用户注册,显示所有 ...

  8. 如何简单实现接口自动化测试(基于 python) 原博主地址https://blog.csdn.net/gitchat/article/details/77849725

    如何简单实现接口自动化测试(基于 python) 2017年09月05日 11:52:25 阅读数:9904 GitChat 作者:饿了么技术社区 原文:如何简单实现接口自动化测试(基于 python ...

  9. vue-cli 里axios的使用

    1.axios的安装 cnpm i axios --save 2.axios的引入 安装其他插件的时候,可以直接在 main.js 中引入并 Vue.use(),但是 axios 并不能 use,只能 ...

随机推荐

  1. python安装及typora使用

    第一章 环境搭建 1.1Python安装 1.1.1python官网www.python.org 1.1.2根据电脑系统选择下载 1.1.3确定电脑系统属性,此处我们以win10的64位操作系统为例 ...

  2. pdo类的使用

    使用方法 2.php <?php require_once "./mypdo.php"; $pdo = DAOPDO::getInstance('localhost', 'r ...

  3. 【Android UI】自定义带按钮的标题栏

    自定义标题栏在很多的android app中很常见,可以说是一种很有用的UI设计方法.自 己也本着学习的态度,经过一番各种坑,终于实现了,现总结如下: 一:大致流程 1.      对指定的andro ...

  4. C#5.0新增功能02 调用方信息

    连载目录    [已更新最新开发文章,点击查看详细] 通过使用调用方信息特性,可获取有关方法的调用方的信息. 可以获取源代码的文件路径.源代码中的行号和调用方的成员名称. 此信息有助于跟踪.调试和创建 ...

  5. Ambassador,云原生应用的“门神”

    目前,行业内基于云原生思想的开源项目,重点在于管理.控制微服务以及微服务架构下服务之间的通信问题.它们有效的解决了“服务异构化”.“动态化”.“多协议”场景所带来的east/west流量的管控问题,而 ...

  6. 六、SQL 多张表数据叠加到一个视图里面

    1 create view vABC as select * from a,b,c where a.id = b.aid and b.id = c.bid ---------------------- ...

  7. 一文了解有趣的位运算(&、|、^、~、>>、<<)

    1.位运算概述 从现代计算机中所有的数据二进制的形式存储在设备中.即0.1两种状态,计算机对二进制数据进行的运算(+.-.*./)都是叫位运算,即将符号位共同参与运算的运算. 口说无凭,举一个简单的例 ...

  8. 【Java中级】(二)集合框架

    2.1.ArraList 1.自增长 容器的容量"capacity"会随着对象的增加,自动增长 只需要不断往容器里增加英雄即可,不用担心会出现数组的边界问题. 2.常用方法 关键字 ...

  9. 201803-1跳一跳 CCF (C语言)

    问题描述 近来,跳一跳这款小游戏风靡全国,受到不少玩家的喜爱. 简化后的跳一跳规则如下:玩家每次从当前方块跳到下一个方块,如果没有跳到下一个方块上则游戏结束. 如果跳到了方块上,但没有跳到方块的中心则 ...

  10. Reporting报表开发知识合并[个人原创]

    [个人原创] ,转发请声明原文链接 了解 a)      SSRS全称 SQL Server Reporting Services,是依赖于数据库运行的,是微软开发的重量级别的BI产品 b)      ...