往期回顾:上一次说了 python模拟登录不带验证码的网站,现在来说说如果带验证码的网站怎么办

验证码也是一种反爬机制,如果登陆地方存在验证码我们有两种思路对验证码进行识别

  • 肉眼识别,即我们将验证码下载下来自己进行识别然后手动输入,这个适合咱们网络安全的人
  • 第三方识别平台——如云打码,斐斐打码等,适合专业python人员

因为本人从事的是渗透测试,爬虫只是用来简单的爬取一些漏洞数据,所以这里我就只演示利用肉眼识别验证码的方式。每次请求登录页面验证码都会刷新,所以还是需要用到session对象。

代码编写

如下这个小说网,登录需要验证码

模拟流程大致如下:

  • 利用session发起请求然后xpath获取验证码图的下载地址,将验证码保存
  • 封装post数据包,将识别的验证码手动输入
  • session发起post登陆请求
  • 请求个人信息,验证是否登陆成功
import requests
from lxml import etree
from requests.packages import urllib3
urllib3.disable_warnings()url = "https://www.qb5.tw/login.php"
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'
}# 1.创建session对象
session = requests.session()
pag_text = session.get(url=url,headers=headers).text# 2.实例化一个etree对象,方便后面对页面进行数据解析
tree = etree.HTML(pag_text)# 3.提取验证码下载地址
img_path = "https://www.qb5.tw" + tree.xpath('//*[@id="main"]/div[1]/form/fieldset/p[3]/img/@src')[0]
print(img_path)# 4.下载验证码,以二进制的方式进行保存
img_content = session.get(img_path,headers=headers,verify=False).content
with open('./img.png','wb') as f:f.write(img_content)print('验证码图片下载成功')img_code= input('请输入验证码:')# 5.进行登录,定义post的参数
data = {'username': 'test123','password': 'admin@123','checkcode': img_code,'usecookie': '315360000','action': 'login','submit': '立即登陆'
}
# 判断是否登录成功
response = session.post(url=url,data=data,headers=headers,verify=False)
response.encoding = 'gbk'      #编码防止乱码
response_text = response.text
if "登录成功"  in response_text:print("登陆成功")
# 请求个人信息页
ge = session.get(url='https://www.qb5.tw/userdetail.php',headers=headers,verify=False)
with open('xs.html','w',encoding='gbk') as f:f.write(ge.text)

成功登录,并获取到登录后的个人信息页

python模拟登录网站(带图形验证码)相关推荐

  1. 2019年最新 Python 模拟登录知乎 支持验证码

    2019年最新 Python 模拟登录知乎 支持验证码和保存 Cookies 知乎的登录页面已经改版多次,加强了身份验证,网络上大部分模拟登录均已失效,所以我重写了一份完整的,并实现了提交验证码 (包 ...

  2. python模拟登录网站_Python模拟登录淘宝都实现了,你还怕模拟登录?

    文章转载自公众号 :裸睡的猪 , 作者 猪哥66 最近想爬取淘宝的一些商品,但是发现如果要使用搜索等一些功能时基本都需要登录,所以就想出一篇模拟登录淘宝的文章! 看了下网上有很多关于模拟登录淘宝,但是 ...

  3. python模拟登录网站_Python爬虫实战之(四)| 模拟登录京东商城

    作者:xiaoyu 微信公众号:Python数据科学 知乎:Python数据分析师 前两篇和大家分享了爬虫中http的一些概念和使用方法,基础篇我们主要介绍了http的请求头,高级篇我们主要介绍了co ...

  4. python模拟登录网站_用python实现模拟登录人人网

    我决定从头说起.懂的人可以快速略过前面理论看最后几张图. web基础知识 从OSI参考模型(从低到高:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层)来说,我们的互联网属于应用层.从TCP ...

  5. python模拟登录网站_Python爬虫之模拟登录wechat

    不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一起.既然它这么重要,如果我们可以利用爬虫模拟登录,是不是就意味着我们可以获取这些信息 ...

  6. python模拟登录详细教程_Python模拟登录requests.Session应用详解

    最近由于某些原因,需要用到Python模拟登录网站,但是以前对这块并不了解,而且目标网站的登录方法较为复杂, 所以一下卡在这里了,于是我决定从简单的模拟开始,逐渐深入地研究下这块. 注:本文仅为交流学 ...

  7. python简单模拟登录网站(以登录教务系统为例)

    简单参考 Python3实现网站模拟登录 写了个python模拟登录教务系统,具体用到了selenium浏览器自动测试框架,参考了 Flask 的文档 作接口.代码供参考. import time f ...

  8. 使用python模拟登录

    使用python模拟登录 运行环境 步骤 浏览器阶段 思路 编码 使用Java模拟登录 该方法是一个比较麻烦的方法,但是它不需要浏览器的配合,适合爬虫之类. 而另一种,使用webdriver的,使用比 ...

  9. Python学习教程:用Python模拟登录淘宝

    今天跟大家出的Python学习教程,Python模拟登录淘宝,我知道,肯定是吸引了你,一起来看看吧! 最近想爬取淘宝的一些商品,但是发现如果要使用搜索等一些功能时基本都需要登录,所以就想出一篇模拟登录 ...

最新文章

  1. 修改域名dns服务器,新网互联域名如何修改DNS设置方法
  2. 这个操作稳!云厂商开设免费云计算课程,学员独享49元主机套餐包年!
  3. ha apache mysql_apache-2.2 – Apache和MySQL的HAProxy平衡算法
  4. boost::to_address用法实例
  5. iptables for循环
  6. 机器人学中的状态估计 中文版_机器人学中的状态估计/State Estimation for Robotics—第三章习题答案...
  7. html的换行问题(未解决)
  8. MYsql 安装后启动服务1067错误
  9. 光端机与交换机有什么区别?
  10. Struts2之初识篇(一)——与struts的区别和基本配置
  11. 非极大值抑制(Non-Maximum Suppression,NMS)(转)
  12. 下载图片的java工具类_ftputil 下载图片工具类
  13. Windows系统IP地址自动切换
  14. Unity Webgl生成带图片、表格的文本(DOC、PDF)
  15. python word2vec使用_使用Python可视化Word2vec的结果
  16. logistics回归分析——二元逻辑回归
  17. 序列化对象互转--Jackson中的ObjectMapper,解决超类派生问题,序列化问题
  18. 自己做小程序开个社区团购可行吗?
  19. CyberArk被评为2022年Gartner特权访问管理魔力象限领导者
  20. 块元素div转变为行内块元素之后如何消除之间间隙

热门文章

  1. IC卡(Integrated Circuit Card,集成电路卡)(一)
  2. PLSQL实现分页查询
  3. 原力创新护航CIBN 共促新媒体业态发展
  4. java8回收加载的类_JVM系列之五:垃圾回收
  5. 快看漫画显示服务器繁忙,◆銀魂◆ 3745HOUSE鉄火G【 PLEASE! GINTOKI 】土銀(土方×銀時),高銀(高杉×銀時)漫画合同誌P52, 2014/9月発行...
  6. 阿里旗下蚂蚁金服副总:有望3-5年内消灭伪基站
  7. 红米k30 允许调用gpu调试层_Abaqus中Fortran子程序的调试方法(一)
  8. 对比苹果表,说说moto360
  9. PBFT中的FLP不可能定理及CAP定理
  10. java spring 学习视频_Spring学习视频