这篇文章主要介绍了python绕过图片滑动验证码实现爬取PTA所有题目附源码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
最近学了python爬虫,本着学以致用的态度去应用在生活中。突然发现算法的考试要来了,范围就是PTA刷过的题。让我一个个复制粘贴?不可能,必须爬它!
先开页面,人傻了,PTA的题目是异步加载的,爬了个寂寞(空数据)。AJAX我又不熟,突然想到了selenium。
selenium可以模拟人的操作让浏览器自动执行动作,具体的自己去了解,不多说了。干货来了:
登录界面有个图片的滑动验证码
破解它的最好方式就是用opencv,opencv巨强,自己了解。思路开始:1.将背景图片和可滑动的图片下载2.用opencv匹配这两张图片的最匹配位置,不用在意怎么实现的,算法极其BT,不是我这种数学不及格的人能想的。最终会得到一个匹配度最高的XY值3.由于Y值不用考虑,拖动滑块是X值的事情,调用selenium里抓放的函数,把X值丢进去,让浏览器自动滑动即可。注意:由于算法问题,可能不能一次成功,重启程序就行了,或者改动代码。4.进去之后就用selenium各种操作爬就完事了以下是源码:
fromseleniumimportwebdriver
fromselenium.webdriver.