一、打开网站并设置浏览器窗口
首先,打开浏览器并将窗口最大化,以确保每次截取的图片都是相同的大小:
python
from selenium import webdriver
url = "https://www.example.com"
driver = webdriver.Chrome()
driver.get(url)
driver.maximize_window()
二、截取带有验证码的网页内容
截取当前屏幕内容,并保存到本地:
python
driver.save_screenshot("H://test/01.png")
三、识别图片验证码
使用 pytesseract 识别图片验证码
定位验证码在图片中的位置并截取:
python
from PIL import Image, ImageEnhance
import pytesseract
image = Image.open("H://test/01.png")
box = (564, 395, 643, 423) # 验证码位置(左,上,右,下)
captcha_image = image.crop(box)
captcha_image.save("H://test/02.png")
图像增强并识别验证码:
python
enhanced_image = ImageEnhance.Contrast(captcha_image).enhance(2.0)
enhanced_image.save("H://test/03.png")
captcha_text = pytesseract.image_to_string(enhanced_image).strip()
print(captcha_text)
使用 ddddocr 识别图片验证码
读取并识别图片:
python
import ddddocr
ocr = ddddocr.DdddOcr()
with open('./images/code1.png', 'rb') as f:
img_bytes = f.read()
captcha_text = ocr.classification(img_bytes)
print(f'验证码为:{captcha_text}')
四、输入账号、密码和验证码
定位账号、密码和验证码输入框,并输入相关内容:
python
username_input = driver.find_element_by_id("username")
password_input = driver.find_element_by_id("password_1")
captcha_input = driver.find_element_by_id("user_ck")
username_input.send_keys('your_username')
password_input.send_keys('your_password')
captcha_input.send_keys(captcha_text)
五、点击登录按钮
定位并点击登录按钮:
python
login_button = driver.find_element_by_name("yt0")
login_button.click()
六、关闭浏览器
最后,关闭浏览器:
python
driver.quit()
七、问题和解决方案
pytesseract 报错解决方案 更多内容联系1436423940
在使用 pytesseract 识别图片时,如果报错 tesseract-ocr 相关信息,可以通过 tesseract-ocr 下载 页面下载并安装 tesseract-ocr。
打开 pytesseract.py 文件,找到 tesseract_cmd,将其设置为 tesseract-ocr 的安装路径:
python
tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"
这样即可解决 pytesseract 的报错问题。