Python Selenium更改文本大小(缩放?设置?...)

时间:2013-08-18 20:34:31

标签: python selenium ocr

我有一个网页,我需要首先拍摄屏幕截图,然后使用OCR解析内部的文本。如果我放大(Mac:command +'='),OCR的性能可以大大提高。所以我想知道如何在Python中使用selenium放大/缩小。

有一个类似的post,但他们只有Java和C#的实现,但目标与我的相同。

放入/放出硒只是我的一个想法。提高性能。我知道可能有几种方法可以实现。以下是我的想法,我从未成功实施过它们。如果你能证明它们有效并改变字体大小,我也会接受答案。

  1. 可能会更改浏览器的设置,然后另存为Chrome配置文件,因此下次我可以调用配置文件,并且应该在整个过程中保留“ZOOM”设置,而不会触及任何内容。但是,似乎python selenium包不支持加载chrome配置文件,但是,它可以加载firefox配置文件。 Link

  2. 也许将屏幕截图作为矢量图像,因此请使用PIL等分别放大字体大小。

  3. ...

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

    #!/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()
    

1 个答案:

答案 0 :(得分:4)

您可以通过content缩放execute_script("$('#content').css('zoom', 5);") div:

#!/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模块获取文本?

希望有所帮助。