我有 Debian Linux 服务器,可用于各种用途。我希望它能够完成一些我需要定期完成的网络抓取工作。
此代码可在此处找到。
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtWebKit import *
class Render(QWebPage):
def __init__(self, url):
self.app = QApplication(sys.argv, False) # Line updated based on mata's answer
QWebPage.__init__(self)
self.loadFinished.connect(self._loadFinished)
self.mainFrame().load(QUrl(url))
self.app.exec_()
def _loadFinished(self, result):
self.frame = self.mainFrame()
self.app.quit()
对它的简单测试如下所示:
url = 'http://example.com'
print Render(url).frame.toHtml()
在调用构造函数时,它会因这条消息而死(它被打印到标准输出,而不是未捕获的异常)。
: cannot connect to X server
如何在无头服务器上使用 Python (2.7)、QT4 和 Webkit?不需要显示任何内容,因此我可以调整任何设置或任何需要调整的内容。
我已经研究过替代方案,但这是最适合我和我的项目的。如果我必须安装 X 服务器,我怎样才能以最小的开销做到这一点?