Selenium+PhantomJS(系列六:元素区域截图,OCR)
Selenium+PhantomJS系列教程:
- Selenium+PhantomJS(系列一:设置User-Agent)
- Selenium+PhantomJS(系列二:模拟登录淘宝)
- Selenium+PhantomJS(系列三:模拟登录知乎)
- Selenium+PhantomJS(系列四:模拟登录微博)
- Selenium+PhantomJS(系列五:selenium的等待)
- Selenium+PhantomJS(系列六:元素区域截图,OCR)
Selenium+PhantomJS(系列六:元素区域截图,OCR),针对元素区域截图,然后可以利用ocr做验证码识别,或做一些图形图像分析,等等。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
import base64 import sys import pyocr from StringIO import StringIO from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities from PIL import Image driver = webdriver.Remote( command_executor='http://10.10.10.140:8910', desired_capabilities=DesiredCapabilities.PHANTOMJS) driver.get('目标网址') # 获取元素位置 element = driver.find_element_by_class_name('conttxt') location = element.location size = element.size # 计算出元素位置图像坐标 img = Image.open(StringIO(base64.decodestring(driver.get_screenshot_as_base64()))) driver.quit() left = location['x'] top = location['y'] right = location['x'] + size['width'] bottom = location['y'] + size['height'] img = img.crop((int(left), int(top), int(right), int(bottom))) # img.save('screenshot.png') 是否保存图像 # 利用pyocr库 推荐引擎tesseract进行图像识别 tools = pyocr.get_available_tools()[:] print tools[0].image_to_string(img,lang='chi_sim') |