不管图片上是两个字,三个字,还是四个字,统统2分5厘
环境的配置自行百度解决
在实际开发环境中,这类验证码反爬通常都是比较难处理的,你要是说自己搞一个CNN卷积神经网络,那我只能说:大佬,带我飞。
对于普通码农来说,能借助第三方平台起飞,也是不错的选择,毕竟公司要的是爬下来的数据,不是你用了什么方法在那儿破解登陆验证什么的,总之还是看效率的吧,个人理解,不喜勿喷!
知识付费的时代,所以本文要求VIP用户才可以看,全程注释,小白也能秒懂
# 点选文字验证码
import time
from io import BytesIO
from PIL import Image
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from chaojiying import Chaojiying
USERNAME = "admin"
PASSWORD = "admin"
CHAOJIYING_USERNAME = "超级鹰用户名"
CHAOJIYING_PASSWORD = "超级鹰密码"
CHAOJIYING_SOFT_ID = 9****6
CHAOJIYING_KIND = 9004
if not CHAOJIYING_USERNAME or not CHAOJIYING_PASSWORD:
print("请设置用户名和密码")
exit(0)
class CrackCaptcha():
captcha_result_json = ""
def __init__(self):
self.url = "https://captcha3.scrape.center/"
self.browser = webdriver.Chrome()
self.wait = WebDriverWait(self.browser, 20)
self.username = USERNAME
self.password = PASSWORD
self.chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD, CHAOJIYING_KIND)
# 第一步 打开网页输入用户名和密码
def open(self):
self.browser.get(self.url)
username = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "input[type='text']")))
password = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "input[type='password']")))
username.send_keys(self.username)
password.send_keys(self.password)
return print("已输入用户名和密码")