私はさまざまなことに使用するDebianLinuxサーバーを持っています。定期的に行う必要のあるWebスクレイピングジョブを実行できるようにしたいと思います。
このコードはここにあります。
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()
コンストラクターを呼び出すと、このメッセージで終了します(キャッチされない例外ではなく、stdoutに出力されます)。
: cannot connect to X server
ヘッドレスサーバーでPython(2.7)、QT4、およびWebkitを使用するにはどうすればよいですか?何も表示する必要がないので、設定や調整が必要なものをtweekできます。
私は代替案を検討しましたが、これは私と私のプロジェクトに最適です。Xサーバーをインストールする必要があった場合、最小限のオーバーヘッドでどのようにインストールできますか?