これが役立つことを願っています...
あなたのコード
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/'))
前提条件の依存関係
from PyQt4.QtWebKit import * # Import all from QtWebKit
前のディレクティブにより、QtWebKit.QWebKit() オブジェクトとそのメソッドの使用を継承できます。しかし、ユーザー エージェント (「Web ブラウザー」) を指定できるコンポーネントがもう 1 つ不足しています。上記で QWebView.load メソッドの署名を書き出したことに注意してください
QWebView.load(QNetworkRequest var) # Where var is a variable object of QNetworkRequest
呼び出し時に QNetworkRequest を使用しているのはたまたまです
QtCore.QUrl('http://www.whatsmyuseragent.com/')
したがって、技術的には、上記の行は次の行と同じです。
self.request = QNetworkRequest()
self.request.setUrl(QUrl(url))
上記の行を含めるには、以下をインポートする必要があります。
from PyQt4.QtNetwork import * # Just import all to be lazy
また
from PyQt4.QtNetwork import QNetworkRequest # This is actually the origin of QNetworkRequest
点を結びます
では、すべてをまとめましょう。QUrl は QNetworkRequest() オブジェクトであり、QNetworkRequest を使用して URL を指定できることを理解しています。最後に知っておく必要があるのは、ユーザー エージェントの設定方法です。
ユーザー エージェントは QNetworkRequest の setRawHeader(string, string) メソッドを使用して設定されます
self.request.setRawHeader("User-Agent","You/desired/user/agent")
self.request.load(self.request) #load the QNetworkRequest object variable to .load()
終わり!
最終草案
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)
これがお役に立てば幸いです。基本的なことは理解できると思うので、いくつかのことを省略しました。