1

我有一个网页,我需要先截屏,然后使用 OCR 解析出里面的文本。如果我放大(Mac:command + '='),OCR 的性能可能会得到显着改善。所以我想知道如何在 Python 中使用 selenium 放大/缩小。

有一个类似的帖子,但他们只有 Java 和 C# 的实现,但目标和我的一样。

放大/缩小硒只是我的想法之一。为了提高性能。我知道可能有几种实现方法。以下只是我的想法,我从未成功实施它们。如果您能证明它们有效并更改字体大小,我也会接受作为答案。

  1. 也许更改浏览器的设置,然后保存为 Chrome 配置文件,所以下一次,我可以调用配置文件,并且在整个过程中应该保留“ZOOM”设置,而不需要触摸任何东西。但是,似乎 python selenium 包不支持加载 chrome 配置文件,但是,它可以加载 firefox 配置文件。关联

  2. 可能将屏幕截图作为矢量图像,因此使用 PIL 等单独放大字体大小。

...

非常感谢您的帖子和帮助您入门的示例代码!

#!/usr/bin/python

from selenium import webdriver

def main():
    browser = webdriver.Chrome()  # Sorry, I have to use Chrome, [chromedriver][3] is required
    browser.set_window_size(1000, 1000)    
    browser.get("https://stackoverflow.com/users/1953475/b-mr-w")

    # Fill in Your Magic Here to Make the Font Size Big!

    browser.get_screenshot_as_file('/tmp/screenshot.png')

if __name__ == '__main__':
    main()
4

1 回答 1

4

您可以通过以下方式缩放contentdiv execute_script("$('#content').css('zoom', 5);")

#!/usr/bin/python

from selenium import webdriver
import time


def main():
    browser = webdriver.Chrome()
    browser.set_window_size(1000, 1000)
    browser.get("http://stackoverflow.com/users/1953475/b-mr-w")

    browser.execute_script("$('#content').css('zoom', 5);")
    time.sleep(5)

    browser.get_screenshot_as_file('screenshot.png')

if __name__ == '__main__':
    main()

但是,缩放有一个问题:get_screenshot_as_file不会向您显示整个页面 - 它会根据它看到的内容(带有滚动条)制作图像。

为什么在这里需要 OCR?使用html2text模块获取文本怎么样?

希望有帮助。

于 2013-08-18T21:40:05.067 回答