я хочу напечатать текст моих изображений одно за другим, которые присутствуют в одной папке, используя для цикла - PullRequest
0 голосов
/ 05 июня 2019

вырезать по одному тексту изображения из папки. Это только для одного изображения. Как сделать для всех изображений

public static String crackImage(String filepath) throws TesseractException {
        File imgfile = new File(filepath);
            ITesseract instance = new Tesseract();
            instance.setDatapath("C:\\selenium_work\\ScrappingText.PDF\\tessdata");

            String result = instance.doOCR(imgfile);
            return result;  
    }

    public static void main(String[] args) throws TesseractException {

         String textdata = ImageScrapping.crackImage("C:\\selenium_work\\ScrappingText.PDF\\image\\IMG_20190305_152800__01.jpg");
         System.out.println(textdata);

1 Ответ

1 голос
/ 05 июня 2019

Вы можете сохранить изображения с указанного URL, например:

  1. Найдите все <img> теги и извлеките их src атрибуты используя ie XPath locator из //img

    List<String> imagesUrls = driver.findElements(By.xpath("//img"))
            .stream()
            .map(img -> img.getAttribute("src"))
            .collect(Collectors.toList());
    
  2. Загрузите все изображения в папку по вашему выбору, используя клиентская библиотека OkHTTP :

    for (String imageUrl : imagesUrls) {
        Request request = new Request.Builder().url(imageUrl).build();
        Response response = client.newCall(request).execute();
        File downloadedLogo = new File("C:\\selenium_work\\ScrappingText.PDF\\image\\" + imageUrl.substring(imageUrl.lastIndexOf('/') + 1));
        BufferedSink sink = Okio.buffer(Okio.sink(downloadedLogo));
        sink.writeAll(Objects.requireNonNull(response.body()).source());
        sink.close();
    }
    
  3. По завершении вы сможете вызывать функцию crackImage для каждого загруженного файла с помощью метода Files.walk ():

    Files.walk(Paths.get("C:\\selenium_work\\ScrappingText.PDF\\image"))
            .forEach(file -> System.out.println(crackImage(file.toAbsolutePath().toString())));       
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...