ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

在QWebView中设置useragent

2019-06-10 16:46:27  阅读:331  来源: 互联网

标签:python pyqt4 qwebview qwebpage


我有一个QWebView,工作正常.然后,使用spynner中的代码,我尝试将useragent方法绑定到自定义方法.这似乎适用于spynner(使用QWebPage),但不在此处.任何帮助非常感谢.码:

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/'))

解决方法:

我希望这有帮助…

你的守则

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

要么

from PyQt4.QtNetwork import QNetworkRequest # This is actually the origin of QNetworkRequest

将点连接

好吧,让我们把它们全部拉到一起吧.我们知道QUrl是一个QNetworkRequest()对象,我们可以使用QNetworkRequest指定url.我们需要知道的最后一件事是如何设置用户代理.

用户代理是使用setRawHeader(string,string)设置的QNetworkRequest方法

self.request.setRawHeader("User-Agent","You/desired/user/agent")
self.request.load(self.request) #load the QNetworkRequest object variable to .load()

DONE!

最终稿

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)

我希望这对你有所帮助.我遗漏了一些东西,因为我觉得你得到了基础知识.

标签:python,pyqt4,qwebview,qwebpage
来源: https://codeday.me/bug/20190610/1213037.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有