J'espère que cette aide ...
Votre Code
def customuseragent(url):
print 'called for %s' % url
return 'custom ua'
#inside a class
self.webkit = QtWebKit.QWebView()
self.webkit.page().userAgentForUrl = customuseragent
self.webkit.load(QtCore.QUrl('http://www.whatsmyuseragent.com/'))
Condition préalable Dépendances
from PyQt4.QtWebKit import * # Import all from QtWebKit
La directive précédente permet d'hériter de l'utilisation de l'objet QtWebKit.QWebKit() et de ses méthodes. Mais il vous manque un composant supplémentaire qui vous permet de spécifier l'agent utilisateur ("navigateur Web"). Notez que ci-dessus, j'ai écrit la signature de la méthode QWebView.load
QWebView.load(QNetworkRequest var) # Where var is a variable object of QNetworkRequest
Il se trouve que vous utilisez QNetworkRequest lorsque vous appelez
QtCore.QUrl('http://www.whatsmyuseragent.com/')
Ainsi, techniquement la ligne ci-dessus est le même que les éléments suivants:
self.request = QNetworkRequest()
self.request.setUrl(QUrl(url))
afin d'inclure les lignes ci-dessus, vous devez importer:
from PyQt4.QtNetwork import * # Just import all to be lazy
OU
from PyQt4.QtNetwork import QNetworkRequest # This is actually the origin of QNetworkRequest
Relie les points
Ok, nous allons tirer tous ensemble maintenant. Nous comprenons que QUrl est un objet QNetworkRequest() et nous pouvons spécifier l'URL en utilisant QNetworkRequest. La dernière chose que nous devons savoir est de savoir comment définir l'agent utilisateur.
User Agent est défini à l'aide de la setRawHeader (string, string) une méthode de QNetworkRequest
self.request.setRawHeader("User-Agent","You/desired/user/agent")
self.request.load(self.request) #load the QNetworkRequest object variable to .load()
FAIT!
Final Draft
from PyQt4.QtWebKit import *
from PyQt4.QtNetwork import *
USER_AGENT = "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:15.0) Gecko/20100101 Firefox/15.0.1"
def customuseragent(url):
print 'called for %s' % url
return 'custom ua'
#inside a class
# class WebRequest(QWebView) ## the definition of the class uncomment to make use of the inheritance.
## from this tutorial
self.request = QNetworkRequest()
self.request.setUrl(QUrl(url))
self.request.setRawHeader("User-Agent",USER_AGENT)
## modified version of the original design
self.webkit = QtWebKit.QWebView()
self.webkit.page().userAgentForUrl = customuseragent
self.webkit.load(self.request)
J'espère que cela vous a aidé. J'ai laissé tomber certaines choses parce que je pense que vous obtenez les principes fondamentaux.
Voir: http://stackoverflow.com/questions/5317924/how-do-i-set-the-user-agent-for-a-qnetworkrequest-in-pyqtwebkit/7878683#7878683 –