Python QWebEngineView 重定向到错误的语言页面

Posted

技术标签:

【中文标题】Python QWebEngineView 重定向到错误的语言页面【英文标题】:Python QWebEngineView redirects to wrong language page 【发布时间】:2017-04-17 14:54:00 【问题描述】:

当我使用以下代码浏览页面时,结果是另一种语言(我认为是俄语)。当我在其他浏览器中浏览到相同的 url 时,我得到了预期的英文 404 页面。我尝试设置接受语言,但这没有帮助。我错过了什么?

import sys
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtWebEngineWidgets import QWebEngineView
app = QtWidgets.QApplication(sys.argv)
w = QWebEngineView()
w.page().profile().setHttpAcceptLanguage('en')  # This doesn't help
w.load(QtCore.QUrl('http://turbobit.net/download'))  # Goes to russian? 404 page
w.show()
app.exec_()

以下 webkit 版本按预期工作

import sys
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtWebKitWidgets import QWebView
app = QtWidgets.QApplication(sys.argv)
w = QWebView()
w.setUrl(QtCore.QUrl('http://turbobit.net/download'))  # Loads correct English 404 page
w.show()
app.exec_()

【问题讨论】:

【参考方案1】:

创建视图前需要设置语言:

import sys

from PyQt5 import QtWidgets, QtCore
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEngineProfile

app = QtWidgets.QApplication(sys.argv)
QWebEngineProfile.defaultProfile().setHttpAcceptLanguage('en')
w = QWebEngineView()
w.load(QtCore.QUrl('http://turbobit.net/download'))
w.show()
app.exec_()

【讨论】:

我花了太多时间尝试各种各样的东西,以至于与我最初的猜测如此接近。非常感谢!! 这实际上是 Qt 中的一个错误,将在 5.9(或者可能是 5.9.1)中修复:bugreports.qt.io/browse/QTBUG-60588

以上是关于Python QWebEngineView 重定向到错误的语言页面的主要内容,如果未能解决你的问题,请参考以下文章

python 爬网页 遇到重定向怎么处理

python 爬网页 遇到重定向怎么处理

URL重定向漏洞,python打造URL重定向漏洞检测脚本

求助python3 302重定向 鎐ookie问题

python print 中文重定向失败

python重定向原理及实例