前言

有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接)。

获取不到也没关系,可以通过添加cookie的方式绕过验证码。

另一篇博文  Python Selenium Cookie 绕过验证码实现登录  介绍了另外一种处理方式,及实际项目应用实战,有兴趣的同学可以点击查看。

一、抓登录cookie

1.登录后会生成一个已登录状态的cookie,那么只需要直接把这个值添加到cookies里面就可以了。

2.可以先手动登录一次,然后抓取这个cookie,这里就需要用抓包工具fiddler了

3.先打开博客园登录界面,手动输入账号和密码(勾选下次自动登录)

4.打开fiddler抓包工具,刷新下登录首页,就是登录前的cookie了

5.登录成功后,再查看cookie变化,发现多了两组参数,多的这两组参数就是我们想要的,copy出来,一会有用

代码实例:

# baseinfo -> __init__
#-*-coding:utf-8-*-
# Time:2017/9/23 17:44
# Author:YangYangJun loginUrl = "https://passport.cnblogs.com/user/signin" loginHeaders = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36"
} CNBlogsCookie = '通过抓包工具获取该Cookie' CnblogsAspNetCoreCookies = '通过抓包工具获取该Cookie' editUrl = 'https://i.cnblogs.com/EditPosts.aspx?opt=1'
#-*-coding:utf-8-*-
# Time:2017/9/23 10:15
# Author:YangYangJun import requests
#导入配置文件
import baseinfo #登录访问地址
loginUrl = baseinfo.loginUrl
#请求头
loginHeaders = baseinfo.loginHeaders #登录后Cookie1
CNBlogsCookie = baseinfo.CNBlogsCookie
#登录后Cookie2
CnblogsAspNetCoreCookies = baseinfo.CnblogsAspNetCoreCookies
#新建随笔方位地址
editUrl = baseinfo.editUrl
#获取session
s = requests.session() #
#r = s.get(loginUrl,headers = loginHeaders,verify = False ) #获取cookie
c = requests.cookies.RequestsCookieJar() # 添加登录需要的两个cookie
c.set(".CNBlogsCookie",CNBlogsCookie)
c.set('.Cnblogs.AspNetCore.Cookies',CnblogsAspNetCoreCookies)
#更新cookie
s.cookies.update(c) body = {"__VIEWSTATE": "",
"__VIEWSTATEGENERATOR":"FE27D343",
"Editor$Edit$txbTitle":"这是绕过登录的标题: -*- Bluesky -*-",
"Editor$Edit$EditorBody":"<p>这里是中文内容:http://www.cnblogs.com/Skyyj/</p>",
"Editor$Edit$Advanced$ckbPublished":"on",
"Editor$Edit$Advanced$chkDisplayHomePage":"on",
"Editor$Edit$Advanced$chkComments":"on",
"Editor$Edit$Advanced$chkMainSyndication":"on",
"Editor$Edit$lkbDraft":"存为草稿",
}
r2 = s.post(editUrl, data=body, verify=False)
#获取请求返回的响应信息
print r2.content

body中的值是可以通过开发者模式查看,如下图:

填写标题

response的返回内容还有其它更多信息

-- r.status_code     #响应状态码
-- r.content           #字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩
-- r.headers          #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
-- r.json()             #Requests中内置的JSON解码器
-- r.url                  # 获取url
-- r.encoding         # 编码格式
-- r.cookies           # 获取cookie
-- r.raw                #返回原始响应体
-- r.text               #字符串方式的响应体,会自动根据响应头部的字符编码进行解码
-- r.raise_for_status() #失败请求(非200响应)抛出异常

Python - Cookie绕过验证码登录的更多相关文章

  1. cookie绕过验证码登录

    #coding:utf-8 ''' cookie绕过验证码登录,第一步先访问登录页面获取登录前的cookie,第二步用fiddler抓到的手动登录的cookie加入cookie中,登录成功,第三步登录 ...

  2. python接口自动化(十三)--cookie绕过验证码登录(详解)

    简介 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接).获取不到也没关系,可以通过添加cookie的方式绕过验证码.(注意:并不是所有的 ...

  3. 通过cookie绕过验证码登录

    在我们做自动化的时候碰到一些比较难破解的验证码时是非常头疼的,一般来说最好的办法就是让开发屏蔽,这样最有益身心健康. 那么今天我介绍的这个方法也挺简单的,就是通过添加cookie的方式绕过验证码直接登 ...

  4. Requests方法 -- cookie绕过验证码登录操作

    前言有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接).获取不到也没关系,可以通过添加 cookie 的方式绕过验证码. 1.这里以登录博 ...

  5. Python Selenium Cookie 绕过验证码实现登录

    Python Selenium Cookie 绕过验证码实现登录 之前介绍过博客园的通过cookie 绕过验证码实现登录的方法.这里并不多余,会增加分析和另外一种方法实现登录. 1.思路介绍 1.1. ...

  6. python接口自动化(Cookie_绕过验证码登录)

     python接口自动化(Cookie_绕过验证码登录) 有些登录的接口会有验证码,例如:短信验证码,图形验证码等,这种登录的验证码参数可以从后台获取(或者最直接的可查数据库) 获取不到也没关系,可以 ...

  7. Python+fiddler(基于Cookie绕过验证码自动登录)

    案例:使用Cookie绕过百度验证码自动登录账户 步骤: 1.浏览器进入百度首页,点击登录按钮,输入相关信息(注意:暂时不要点击登录按钮) 2.进入fiddler,首先获取证书,Tools--> ...

  8. python接口自动化-Cookie_绕过验证码登录

    前言 有些登录的接口会有验证码,例如:短信验证码,图形验证码等,这种登录的验证码参数可以从后台获取(或者最直接的可查数据库) 获取不到也没关系,可以通过添加Cookie的方式绕过验证码 前面在“pyt ...

  9. python接口自动化:绕过验证码登录

    上线产品的登录接口会有验证码,一般可以通过添加cookie的方式绕过验证码. 一.抓登录的cookie 1. 先手动登录一次,然后用fiddler抓取这个cookie,再直接把这个值添加到cookie ...

随机推荐

  1. ArcGIS 10——版本编辑流程

    上一篇文章学习了ArcGIS有关版本机制实现的基本原理,本文结合ArcGIS的数据编辑知识来将版本编辑.协调.解决冲突.提交更改的整个过程加以说明. 同上篇文章一样,写作本文的初始意图是因为目前的项目 ...

  2. Python: ord()函数

    ch() , unichr() , ord() ①chr()函数用一个范围在range(256)内的整数作参数,返回一个对应的字符. >>>chr(65) 'A' ②unichr() ...

  3. Hive 常用语句(持续更新中)

    1)按包含关键字在指定库中查找表名:show tables in dw '*_fab_*';   2)查看和删除自己hdfs系统所用的空间和文件(与shell命令合用):hive命令行下: --查看仓 ...

  4. Java代码质量度量工具大阅兵

    FindBugs FindBugs, a program which uses static analysis to look for bugs in Java code. It is free so ...

  5. 利用canvas来绘制一个会动的图画

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. live555 编译

    项目里面需要简单的rtsp服务器来实现视频预览等功能: rtsp本来不是太复杂的东西,github上有很多功能都比较完善的项目可以随便拿来用,但是测试过程中发现live555还是有性能上的一些差异: ...

  7. 面试题之一(Spring和堆栈和逻辑运算符)

    1.&和&&区别? 都是逻辑运算符,都是判断两边同时为真,否则为假:但&&当第一个为假时,后面就不执行,而&则还是要继续执行,直至结束: ——————— ...

  8. Putty Technical Note

    转载自:http://libai.math.ncu.edu.tw/bcc16/6/putty/puttyt.html Terminal panel Terminal 面板可調整 PuTTY 對於模擬終 ...

  9. bzoj1633 / P2875 [USACO07FEB]牛的词汇The Cow Lexicon

    P2875 [USACO07FEB]牛的词汇The Cow Lexicon 三维dp 它慢,但它好写. 直接根据题意设三个状态: $f[i][j][k]$表示主串扫到第$i$个字母,匹配到第$j$个单 ...

  10. Android项目开发一

    Android项目开发一   进度计划 1.第一周 开源中国注册账号:http://my.oschina.net/u/2511208,并上传Android HelloWorld程序代码 搭建Andro ...