我一直在尝试使用PySide和QWebView实现浏览器。但是浏览器不会加载www.facebook.com。我可以加载谷歌等其他https网站,所以我猜SSL工作正常。 使用http://code.google.com/p/foobrowser/或PySide附带的示例浏览器时,同样的问题仍然存在。有什么问题?
答案 0 :(得分:0)
有同样的问题 - 在我的情况下,它与ssl错误有关。 处理 sslErrors 信号解决了问题:
m_view = new QWebView(parent);
connect(
m_view->page()->networkAccessManager(),
SIGNAL(sslErrors(QNetworkReply*, const QList<QSslError> & )),
this,
SLOT(sslErrorHandler(QNetworkReply*, const QList<QSslError> & ))
);
和插槽:
void myClass::sslErrorHandler(QNetworkReply* qnr, const QList<QSslError> & errlist)
{
qnr->ignoreSslErrors();
}
答案 1 :(得分:0)
发现POODLE漏洞后,某些网站删除了SSLv3。
我的Windows版本的PySide(1.1.1)有PySide.QtNetwork.QSsl.SslProtocol.SslV3
作为默认协议。
要解决此问题,您需要更改QSslConfiguration
的{{1}}以使用TLS。
NetworkAccessManager
致https://github.com/integricho/和https://github.com/integricho/path-of-a-pyqter/
的积分答案 2 :(得分:-1)
在PySide qwebview中加载Facebook没有问题,也许这是你平台的一个问题。
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
import sys
import platform
import PySide
from PySide.QtCore import QUrl
from PySide.QtGui import QApplication
from PySide.QtWebKit import QWebView
print(PySide.__version__) # output: 1.1.1
print(PySide.QtCore.__version__) # output: 4.8.3
print(platform.platform()) # output: Linux-3.5.0-36-generic-x86_64-with-Ubuntu-12.10-quantal
app = QApplication(sys.argv)
web = QWebView()
web.load(QUrl("https://www.facebook.com"))
web.show()
sys.exit(app.exec_())
HTH