Hi
Nein, es wird nur "en" angezeigt.
Code: Alles auswählen
<font color="#008000">Accept-Language:</font> en <br />
Anbei mal der ganze Code:
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import re
from PyQt4 import QtCore, QtGui, QtNetwork, QtWebKit
from PyQt4.QtWebKit import QWebSettings
from ui_test import Ui_MainWindow
# ----- Broweser Einstallung -----
einstellungen = {
QWebSettings.JavaEnabled : False,
QWebSettings.JavascriptEnabled : False,
QWebSettings.PluginsEnabled : False,
QWebSettings.JavascriptCanOpenWindows : False,
}
for key, value in einstellungen.iteritems():
QWebSettings.globalSettings().setAttribute(key, value)
# ----- Socks5 Einstellungen -----
proxy = QtNetwork.QNetworkProxy(QtNetwork.QNetworkProxy.Socks5Proxy, "127.0.0.1", 8010)
QtNetwork.QNetworkProxy.setApplicationProxy(proxy)
# ----- Start Hauptprogramm -----
def main(argv):
app = QtGui.QApplication(argv)
MainWindow = BrowserWindow()
MainWindow.show()
sys.exit(app.exec_())
# ---- Definition user-agent -----
class WebPage(QtWebKit.QWebPage):
def userAgentForUrl(self, url):
return "Mozilla/6.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"
class BrowserWindow(QtGui.QMainWindow,QtWebKit.QWebPage):
def __init__(self, *args):
QtGui.QMainWindow.__init__(self, *args)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
#start ProgressBar
self.ui.webView.loadProgress.connect(self.print_percent)
self.create_connects()
def create_connects(self):
self.ui.editAddress.returnPressed.connect(self.load_page)
self.ui.webView.urlChanged.connect(self.update_url)
self.connect(self.ui.actionExit, QtCore.SIGNAL('triggered()'), QtGui.qApp, QtCore.SLOT('quit()'))
self.connect(self.ui.actionStop, QtCore.SIGNAL('triggered()'), (self.ui.webView.stop))
self.connect(self.ui.actionBack, QtCore.SIGNAL('triggered()'), (self.ui.webView.back))
self.connect(self.ui.actionForward, QtCore.SIGNAL('triggered()'), (self.ui.webView.forward))
self.connect(self.ui.actionReload, QtCore.SIGNAL('triggered()'), (self.ui.webView.reload))
def print_percent(self, percent):
self.ui.progressBar.setValue(percent)
@QtCore.pyqtSlot(QtCore.QUrl)
def update_url(self, url):
self.ui.editAddress.setText(url.toString())
@QtCore.pyqtSlot()
def load_page(self):
#set user-agent and language
self.request = QtNetwork.QNetworkRequest()
self.request.setRawHeader("Accept-Language", QtCore.QByteArray ("en"))
self.ui.webView.setPage(WebPage())
stringUrl = unicode(self.ui.editAddress.text())
if not re.search(r"^http", stringUrl):
stringUrl = "http://" +stringUrl
url = QtCore.QUrl(stringUrl)
self.request.setUrl(url)
self.ui.webView.load(self.request)
self.ui.editAddress.clearFocus()
def closeEvent(self, event):
reply = QtGui.QMessageBox.question(self, 'Message',
"Sind Sie sicher, dass Sie das Programm beenden wollen?", QtGui.QMessageBox.Yes |
QtGui.QMessageBox.No)
if reply == QtGui.QMessageBox.Yes:
event.accept()
else:
event.ignore()
if __name__ == "__main__":
main(sys.argv)
EDIT:
Folgendes ist mir gerade aufgefallen. Wenn ich die Seite
http://show-ip.net/useragent/ direkt aufrufe, dann wird die Sprache als 'en' angezeigt. Wenn ich aber über google.com die Seite aufrufe, dann wird neben 'en' auch 'de' bzw die Systemsprache angezeigt. Wenn ich die Systemsprache auf de-CH, de-LI oder de-BE ändere, dann wird eben diese angezeigt.
Aufruf über google:
User-Agent: Mozilla/6.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer:
http://www.google.de/search?output=sear ... nmOdWEgagG
Connection: Keep-Alive
Accept-Encoding: gzip
Accept-Language: de-CH,en,*
direkter Aufruf:
Accept-Language: en
User-Agent: Mozilla/6.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Connection: Keep-Alive
Accept-Encoding: gzip
Host: show-ip.net