爬虫,遇到aspx动态加载的验证码怎么办?|Python 主题月

本文正在参加「Python主题月」,详情查看 活动连接编程

应用场景

只要折腾过爬虫的都应该会早晚碰到这个问题:验证码。若是没法解决这个问题,估计踏入爬虫学习的第一步就会受到满满的一大盆冷水。由于只要是一个有那么一点点反爬虫的网站都会有验证码。今天就要详细分析分析这一个问题。markdown

image.png

解决方法一:cookie

学习爬虫必需要知道这个东西,Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(一般通过加密),由用户客户端计算机暂时或永久保存的信息。cookie

大家有没有发现,有些网站只登陆过一次,那么能够很长的一段时间都不须要登陆。那是由于有cookie的存在。因此咱们只要带着正确的cookie进行请求网站,这就能够绕过登陆,也绕过了验证码。不过有些网站的cookie很烦,常常变换,也不知道多久变一次。因此是否用这种方法,须要看实际效果。app

解决方法二:半自动化爬虫

技术宅怒爬qq空间表白墙,自动化编程的福利哦|Python 主题月就提过,selenuim是网站自动化的工具。他能够模拟人工点击网站,操做网站。其实用low一点的办法,可以进去网页,问题也不大,也就是半自动化操做。本身手动输入验证码。反正最后仍是能够进入网站爬取信息的。初学者不用纠结于这个验证码是否手动输入,只要爬取的动做仍是代码进行的就行。ide

解决方法三:全自动化爬虫

我认真找了一下这个验证码工具

image.png

发现他的返回是一个PassCode.aspx。而请求的url也能够找到。咱们必定以为很奇怪,明天他们是图片,为何他不是png或者jpg呢?其实这是由于验证码须要作着动态响应,当咱们点它一下的时候,它就会变换成不一样的验证码。咱们每点一次,都会把上面的链接请求一次。post

接下来,咱们须要保存这个验证码。他是aspx格式,咱们须要把他保存为gif。 具体代码以下:学习

import requests
url = 'http://appsso.pc139.zgyey.com/PassCode.aspx'
r = requests.get(url = url)
content = r.content
f =open(r'C:\Users\Administrator\Desktop\aaa.gif','wb')
f.write(content)
f.close()
复制代码

最后能把验证码顺利保存下来。网站

image.png

接下来,咱们要作的是切割图片,而后用图片识别的技术把验证码识别出来,这里最后识别出来的结果也就是一个3+6这一条公式。还有别的验证码识别出来更加简单,也就是4个数字。ui

之后我会详细写一篇如何识别验证码图片的文章。完整爬虫思路就是上面所说。

以为写得还不错的话,给个赞再走呗。

相关文章
相关标签/搜索