我希望這有助於...
代碼
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瀏覽器」)的組件。請注意,上面我的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
OR
from PyQt4.QtNetwork import QNetworkRequest # This is actually the origin of QNetworkRequest
連接點
好吧,讓我們把它所有現在在一起。我們知道QUrl是一個QNetworkRequest()對象,我們可以使用QNetworkRequest來指定URL。我們需要知道的最後一件事是如何設置用戶代理。
用戶代理正在使用setRawHeader(字符串,字符串)DONE的QNetworkRequest
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)
我希望這有助於你。我忽略了一些事情,因爲我認爲你得到了基本面。
請參閱:http://stackoverflow.com/questions/5317924/how-do-i-set-the-user-agent-for-a-qnetworkrequest-in-pyqtwebkit/7878683#7878683 – 2011-10-24 16:38:49