我正在尝试通过使用 selenium 和 chromedriver 与 pyvirtualdisplay 在 Ubuntu 服务器(AWS-EC2)中呈现 HTML 页面。HTML 页面没有出现在我的 Windows PC 中。附上从 webdriver 截取的屏幕截图。
在 Windows PC 中呈现的图像
使用 pyvirtualdisplay 在 Ubuntu 服务器中呈现的图像
运行我的 python 代码时完成的基本配置(python 代码的片段) -
display_width=1366
display_height=768
分辨率与我的 Windows PC 相同。
UserAgent="Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0"
这是一个标准的用户代理。
def create_driver(executable_path,extension_path):
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--user-agent='+UserAgent)
driver = webdriver.Chrome(executable_path=executable_path, chrome_options=chrome_options)
driver.set_window_size(display_width,display_height
driver.delete_all_cookies()
return driver
此代码创建驱动程序
display = Display(visible=0, size=(display_width, display_height))
display.start()
driver = create_driver(executable_path,extension_path)
input_html_file='SAMPLE'
driver.get('file://///var/tmp/' + input_html_file)
我有一个保存的 HTML 文件,我在驱动程序中打开它 - 这是 SAMPLE。
它与我在 Windows 中打开的 HTML 相同。正如您在屏幕截图中看到的那样,文本“91 个卖家评论”换行到新行。由于我正在计算这个块和其他区域的高度,它会影响我的结果。
该代码在 Windows 中就像一个魅力,给出正确的结果(高度),但在 Ubuntu 中,由于渲染本身不正确,结果也是如此。
这是我迄今为止尝试过的 -
- 改变显示器的分辨率。不工作。对于任何显示尺寸,屏幕截图看起来都是一样的。
- 更改字体、字体大小等。没有用。HTML 中的每个块都有不同的 css,所以很痛苦。
- 换浏览器。在 Firefox 或 Chrome 中都不起作用
我的想法不多了,如果有人分享他们的想法或经验或解决这个问题的方法,那将非常有帮助。
我知道这可能是图形驱动程序问题,Windows 有一个,但 Ubuntu 服务器没有。
请帮忙。谢谢,期待中。
编辑:图像描述。