发布于2019-10-05 21:42 阅读(1164) 评论(0) 点赞(11) 收藏(0)
我有用于各种用途的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()
在调用构造函数时,它将死于此消息(将其打印到stdout,而不是未捕获的异常)。
: cannot connect to X server
如何在无头服务器上使用Python(2.7),QT4和Webkit?不需要显示任何内容,因此我可以将任何设置或任何需要调整的时间调整为一周。
我已经研究了替代方案,但这是最适合我和我的项目的方案。如果确实必须安装X服务器,该如何以最小的开销进行安装?
的构造函数之一QApplication
采用布尔参数GUIenabled
。
如果使用它,则可以在没有X服务器的情况下实例化QAppliaction,但是不能创建QWidget。
因此,在这种情况下,唯一的选择是使用虚拟X服务器(如Xvfb)来呈现GUI。
可以使用以下命令安装和运行Xvfb(假设您已安装apt-get)。原始问题中的代码在名为的文件中render.py
。
sudo apt-get install xvfb
xvfb-run python render.py
作者:黑洞官方问答小能手
链接:https://www.pythonheidong.com/blog/article/131467/2ed851a6821cd6929ab6/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!