3

我最近完成了我的 Selenium Python 刮板。当我在我的个人机器上运行它时它工作得很好,但是当我在服务器上运行它时结果不一样。在服务器上,我正在使用无头运行pyvirtualdisplay

browser.get('https://example.com')  
html = browser.page_source

这是我的 pyvirtualdisplay 代码。

display = Display(visible=0, size=(800, 600))
display.start()

在本地机器上运行时,它完全抓取了由 JavaScript 生成的 HTML,但是当我在我的服务器上运行它时,它不会抓取由 JavaScript 生成的 HTML 内容,所以我最终只得到了一个没有 JS 的部分页面生成的内容。

更新: 我还根据使用 Selenium 的建议截取了屏幕截图。截图显示页面部分加载,JS的内容没有加载到屏幕上。

4

1 回答 1

1

这听起来像是您的操作系统或浏览器配置的问题。您应该做的第一件事是在帧缓冲区中截取结果并确保 firefox 正确加载 JS 内容。如果不是,那么您可能需要检查您的浏览器/操作系统配置。

pyvirtualdisplay 有一种截图方式,你可以在这里查看

specflow也可以截图,说明在这里

如果是 FireFox/Browser 问题,请确保您已安装在服务器上运行 javascript 所需的所有正确插件和 Java。确保为该浏览器启用了 javascript。

于 2016-06-15T16:13:17.677 回答