在QWebView中设置useragent

2024-03-24

我有一个 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

OR

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()

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)

我希望这对你有帮助。我省略了一些内容,因为我认为您已经了解了基础知识。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在QWebView中设置useragent 的相关文章

随机推荐

  • 更改 pandas 中的默认选项

    我想知道是否有任何方法可以更改 pandas 的默认显示选项 我想在每次运行 python 时更改显示格式和显示宽度 例如 pandas options display width 150 我看到默认值是硬编码的pandas core co
  • 部署.NET Web应用程序时如何获取预编译的razor文件?

    我的任务是改进服务器上应用程序的 IIS 预加载和初始化 我已经在IIS上实现了应用程序初始化和应用程序预加载 但回收 重新启动应用程序池时仍然有很长的等待时间 我找到了一些有用的链接 我认为这些链接对我有帮助 但我仍然没有获得预编译的 R
  • 通过引用切片为不可变字符串,而不是复制

    如果你使用string split http docs python org library stdtypes html str split对于 Python 字符串 它返回字符串列表 这些已拆分的子字符串是其父字符串部分的副本 是否有可能
  • Spring Boot 中的代理设置

    我的应用程序需要从 Web 获取 XML 文件 如下所示 Bean public HTTPMetadataProvider metadataProvider throws MetadataProviderException String m
  • 未排序数组中的前 5 个元素

    给定一个未排序的数组 我们需要以有效的方式找到前 5 个元素 但我们无法对列表进行排序 我的解决方案 找到数组中的最大元素 在 处理 使用此最大元素后删除它 重复步骤 1 和 2 k 次 本例中为 5 次 时间复杂度 O kn O n 空间
  • WooCommerce - 发送有关自定义订单状态更改的自定义电子邮件

    我添加了自定义状态wc order confirmed Register new status function register order confirmed order status register post status wc o
  • OS X Lion 中的 easy_install pip 需要 sudo 吗?

    我从工作中的 Snow Leopard 转到家里的 Lion 安装 我不记得必须 sudo easy install pip 狮子需要这个吗 在我这样做之前我遇到了错误 pip 最终出现在这里 some computer which pip
  • 大规模分布式系统中的日志文件

    我在网格和 HPC 领域做了很多工作 对于分布在数百 或在某些情况下数千 服务器上的系统 我们面临的最大挑战之一是分析日志文件 当前日志文件本地写入每个刀片上的磁盘 但我们也可以考虑使用 UDP Appender 等发布日志信息并集中收集
  • PyDSTool 与 anaconda 未正确安装

    我正在尝试使用 anaconda2 安装 PyDSTool conda install PyDSTool 这似乎进展顺利 但是当我打开spyder并导入PyDSTool时 它给了我错误 import PyDSTool Traceback m
  • “scrollViewDidScroll”无法连续捕获移动

    我正在编写程序来在滚动 UITableView 时移动名为 myView 的 UIView 请看下面的图片 myView 会随着tableview的contentoffset的变化而改变它的 y坐标 我编写的主要代码是 func scrol
  • 使用 Knockout-Kendo.js 动态启用/禁用 kendo 日期选择器

    我正在尝试使用 Knockout Kendo js 根据选择的选定值启用 禁用 kendo 日期选择器 HTML
  • 将我的 HTML Google MAP API 版本 2 迁移到版本 3

    我将非常感谢对此的帮助 我的 html v2 文件和一些临时密钥工作正常 我从一些 XML 中获取位置 创建不同的颜色标记 并从信息窗口中的 XML 属性添加一些 URL 不是太复杂 现在我需要将其迁移到 v3 我找到了 v2 中函数的一些
  • 找不到 id= 的用户 (ActiveRecord::RecordNotFound)

    使用我的 Rails 应用程序 我可以成功创建一个对象 称为工作 将它们视为博客文章 作为 current user 一个用户 has many 可以工作 我可以通过使用 postgresql 浏览器检查数据库来验证该对象是否已成功创建 该
  • TMUX 会话不会导入 Python 模块

    大家好 这是我在 StackOverflow 上提出的第一个问题 希望大家都满意 我最近开始使用 TMUX 但在将其用于机器学习问题集时遇到问题 我正在使用 python 创建一个程序 并使用 sklearn 模块 基本上 当我在 TMUX
  • 库伯内特斯。 kubernetes 节点之间支持的最大距离/延迟是多少?

    我想创建一个 kubernetes 集群 我想要一个具有高可用性的主节点 工作节点和代理节点的集群 并且节点位于两个位置 是否记录了位置之间支持的最大距离或延迟 此外 我希望能提供官方文档的链接 但我找不到任何相关内容 谢谢 kuberne
  • 使用 GET_FILE_NAME Oracle Forms 无法打开对话框

    我有 Oracle 数据库 11g 带有 Oracle 表单和报告 11g 我创建了浏览按钮来从计算机或笔记本电脑目录中打开 CSV 文件 我在按下按钮时触发时使用此代码 declare filename varchar2 500 begi
  • R 中的 Uniroot 解决方案

    我想找到以下函数的根 x 0 5 f lt function y 1 pbeta 1 exp 0 002926543 107 2592 y 1 082618 exp 0 04097536 107 2592 y shape1 0 264022
  • 将多个文件拖放到用户窗体

    我正在尝试将多个文件拖放到用户窗体上以获取它们的路径 我用一个文件来管理它 感谢this https stackoverflow com questions 20569959 vba drag and drop file to user f
  • 如何在浏览器的调试器本身中调试动态加载的 JavaScript(使用 jQuery)?

    动态添加的脚本不会显示在浏览器调试器的脚本部分中 解释 我需要使用并且已经使用过 if someCondition true getScript myScirpt js function alert Load Complete myFunc
  • 在QWebView中设置useragent

    我有一个 QWebView 工作正常 然后 使用来自spynner 的代码 我尝试将useragent 方法绑定到自定义方法 这似乎在spynner 带有QWebPage 中有效 但在这里不起作用 非常感谢任何帮助 代码 def custo